Print

Porcupine Meatballs

Porcupine Meatballs - recipe card

Tender beef meatballs studded with rice, simmered in a tangy tomato-based sauce until the rice pokes out like ‘porcupine spines.’ A comforting, one-pot dinner that’s savory, slightly sweet, and perfectly hearty.

Ingredients

Scale
  • 1 lb 85/15 ground beef
  • 1/2 cup uncooked long-grain white rice
  • 1/4 cup finely diced yellow onion
  • 1/2 tsp kosher salt
  • 1/4 tsp black pepper
  • 1/2 tsp garlic powder
  • 1/2 tsp onion powder
  • 1 large egg, lightly beaten
  • 2 tbsp whole milk
  • 1 tbsp olive oil
  • 1 (15 oz) can tomato sauce
  • 1 cup low-sodium beef broth
  • 1 tbsp Worcestershire sauce
  • 1 tbsp brown sugar, packed
  • 1 tbsp apple cider vinegar

Instructions

  1. In a large mixing bowl, combine the ground beef, uncooked rice, finely diced onion, kosher salt, black pepper, garlic powder, onion powder, beaten egg, and milk. Use your hands or a fork to mix gently until just combined — overmixing will make the meatballs dense.
  2. Form the mixture into 12 equal meatballs, each about 1.5 inches in diameter (roughly 2 tablespoons each). Roll them gently between your palms so they hold together without being compressed too firmly.
  3. Heat the olive oil in a large, high-sided skillet or Dutch oven over medium-high heat until the oil shimmers. Add the meatballs in a single layer (work in two batches if needed) and cook for 3-4 minutes, turning occasionally with a spatula, until browned on two sides but not cooked through. Do not crowd the pan — overcrowding causes steaming instead of browning.
  4. While the meatballs brown, whisk together the tomato sauce, beef broth, Worcestershire sauce, brown sugar, and apple cider vinegar in a small bowl until the sugar is dissolved. Set the sauce aside.
  5. Once the meatballs are browned, pour the sauce mixture into the skillet, gently scraping up any browned bits from the bottom with a wooden spoon — those bits add deep flavor to the sauce. Bring the sauce to a gentle simmer over medium heat (you should see small bubbles breaking the surface, not a rolling boil).
  6. Reduce the heat to low, cover the skillet with a tight-fitting lid, and let the meatballs cook gently for 25 minutes. Avoid lifting the lid during this time — the steam is essential for cooking the rice through and keeping the meatballs tender.
  7. After 25 minutes, carefully remove the lid and check that the rice has swelled and poked through the surface of the meatballs like small spines. The internal temperature of a meatball should reach 165°F (74°C) for food safety. If the rice is still hard, cover and cook an additional 5-10 minutes.
  8. Once the meatballs are cooked and the rice is tender, taste the sauce and adjust seasoning if needed — add a pinch more salt or a dash more vinegar for brightness. Let the meatballs rest off the heat for 5 minutes; the sauce will thicken slightly as it cools.
  9. Serve the porcupine meatballs warm, spooning extra sauce over each portion. They pair beautifully with mashed potatoes, crusty bread, or a simple steamed green vegetable.

Notes

Store leftovers in an airtight container in the refrigerator for up to 4 days. To reheat, warm gently on the stovetop over low heat, adding a splash of beef broth or water if the sauce thickens too much. For freezing, arrange cooked and cooled meatballs in a single layer on a baking sheet, freeze until solid, then transfer to a freezer-safe bag or container for up to 3 months. Thaw overnight in the fridge before reheating on the stove or in a 350°F (177°C) oven for 15-20 minutes.

Nutrition

Keywords: porcupine meatballs, meatballs with rice, tomato sauce meatballs, comfort food dinner, one-pot meal, ground beef recipe, stovetop meatballs, easy weeknight dinner, 1950s retro recipe, family favorite