Porcupine Meatballs Recipe

Porcupine Meatballs

Porcupine Meatballs are exactly what they sound like — tender beef meatballs with grains of rice poking out like little spines, all simmered in a tangy tomato sauce. They are a savory, slightly sweet, and deeply comforting one-pot dinner that has been on American stovetops for decades for good reason.

This recipe takes about 50 minutes from start to finish and is beginner-friendly. The only thing to watch closely is the simmering time — the rice needs that covered 25 minutes to cook through without being disturbed.

Why You’ll Love This Recipe

  • One-pot cleanup — Everything from browning to simmering happens in a single skillet or Dutch oven, meaning less time washing dishes.
  • Pantry-friendly ingredients — You likely have most of these on hand already, from ground beef and rice to tomato sauce and basic seasonings.
  • Kid-approved flavor — The mildly sweet and tangy sauce pairs perfectly with the savory meatballs, making it a weeknight win for even picky eaters.
Porcupine Meatballs
Porcupine Meatballs

What Makes This Recipe Special

Raw rice goes straight into the meatball mixture, so as it simmers in the sauce, the grains absorb liquid and swell, poking through the surface. The result is a tender, almost dumpling-like texture with a subtle chew from the rice. The sauce balances tang from the apple cider vinegar, sweetness from brown sugar, and savory depth from Worcestershire and beef broth.

Ingredients You’ll Need

Here is everything you need, broken down by category. All quantities come from the recipe data — stick to them for the best outcome.

For the Meatballs

  • 1 lb 85/15 ground beef — 85/15 provides enough fat for juicy meatballs without being greasy. Leaner blends will produce drier results.
  • 1/2 cup uncooked long-grain white rice — Do not substitute quick-cooking or brown rice here; the timing relies on standard long-grain rice.
  • 1/4 cup finely diced yellow onion — Dice it very small so it blends into the meat mixture without creating chunks. White onion works as a swap.
  • 1/2 tsp kosher salt — Use Diamond Crystal if you have it; if using Morton’s, reduce to about 1/3 teaspoon.
  • 1/4 tsp black pepper — Freshly ground adds more aroma than pre-ground.
  • 1/2 tsp garlic powder — Not garlic salt — the recipe already has enough sodium.
  • 1/2 tsp onion powder — This reinforces the fresh onion flavor without adding more moisture.
  • 1 large egg, lightly beaten — Acts as a binder so the meatballs hold their shape during simmering.
  • 2 tbsp whole milk — Adds moisture and tenderness. 2% works, but avoid skim.

For Browning

  • 1 tbsp olive oil — Has a medium smoke point perfect for browning meatballs. Avocado oil can substitute.

For the Sauce

  • 1 (15 oz) can tomato sauce — Plain tomato sauce, not marinara or crushed tomatoes. It creates a smooth, pourable base.
  • 1 cup low-sodium beef broth — Low-sodium gives you control over the final salt level. Regular broth works if you skip extra salt later.
  • 1 tbsp Worcestershire sauce — Adds umami and subtle tang. Do not skip it — it deepens the savory flavor.
  • 1 tbsp brown sugar, packed — Balances the acidity of the tomato sauce and vinegar. Light or dark brown both work.
  • 1 tbsp apple cider vinegar — Provides brightness that cuts through the richness of the beef.

Equipment Needed

  • Large mixing bowl — For combining the meatball ingredients without splatter. A wide bowl gives you room to mix gently with your hands.
  • Large high-sided skillet or Dutch oven — A 12-inch skillet with 2+ inch sides works perfectly. The high sides contain the sauce and prevent splatter during simmering.
  • Small bowl — For whisking together the sauce ingredients before pouring them into the pan.
  • Wooden spoon or silicone spatula — Use the wooden spoon to scrape up browned bits from the skillet bottom — those bits are pure flavor.
  • Tight-fitting lid — Essential for trapping steam while the rice cooks. If your lid is loose, cover the pan with foil first, then press the lid on.

Instructions to Prepare Porcupine Meatballs

The method is straightforward but has a few key moments where attention matters. Follow these steps exactly, and the rice will cook perfectly while the meatballs stay tender.

  • Mix the meatball base — 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. Mix gently with your hands or a fork until just combined — stop as soon as everything is evenly distributed. Overmixing will make the meatballs dense and tough.
  • Shape into 12 meatballs — 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.
  • Brown the meatballs — 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.
  • Prepare the sauce — 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.
  • Simmer everything together — 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).
  • Cover and cook 25 minutes — 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.
  • Check for doneness — 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.
  • Rest before serving — 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.
  • Serve warm — 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.
Porcupine Meatballs

Expert Tips for a Standout Porcupine Meatballs

  • Keep the rice raw — Do not pre-cook the rice. Adding it uncooked to the meat mixture is what creates the classic “porcupine” look. Cooking it beforehand would turn the meatballs into mush.
  • Let the lid stay closed — Lifting the lid during the 25-minute simmer releases steam and slows down rice cooking. If you absolutely must check, do it quickly and re-cover.
  • Roll meatballs gently — Soft, lightly shaped meatballs hold together better during simmering than tightly packed ones. Press too hard and they turn dense.
  • Brown in batches if needed — Crowding the pan drops the oil temperature instantly, causing the meat to steam rather than brown. Two quick batches are better than one crowded attempt.
  • Scrape the fond — Those browned bits stuck to the pan after searing are not burnt food — they are concentrated flavor. Deglaze them into the sauce with your wooden spoon.
  • Let them rest — The 5-minute rest after cooking is not optional. It allows the sauce to thicken slightly and the meatballs to absorb a bit more liquid, making each bite more tender.

Common Mistakes to Avoid

  • Overmixing the meat mixture — Mixing too long or too aggressively develops gluten and compacts the meat, resulting in tough, rubbery meatballs. Mix only until combined.
  • Using the wrong rice — Instant rice will turn to mush, and brown rice will stay hard after 25 minutes. Long-grain white rice is the only reliable choice here.
  • Skipping the browning step — Browning adds a caramelized crust that deepens the flavor of both the meatballs and the sauce. Raw meatballs will taste flat.
  • Simmering at too high a heat — A rolling boil will break the meatballs apart and cause the sauce to reduce too quickly. Keep it at a gentle simmer — small bubbles, not aggressive ones.
  • Lifting the lid too early — Every time you lift the lid, steam escapes, and the cooking time extends. Trust the process and wait the full 25 minutes before peeking.

Variations & Ways to Customize Porcupine Meatballs

  • Swap the protein — Ground turkey or ground chicken works as a leaner alternative. Add 1 tablespoon of olive oil to the meat mixture to compensate for the lower fat content and prevent dryness.
  • Add vegetables to the sauce — Finely diced bell peppers, shredded carrots, or a handful of spinach stirred into the sauce during the last 5 minutes of simmering adds color and nutrients.
  • Spice it up — Add 1/2 teaspoon of red pepper flakes or a minced jalapeño to the sauce for a mild heat that contrasts nicely with the sweet-tangy base.
  • Use a different acid — Substitute the apple cider vinegar with white wine vinegar or lemon juice for a slightly brighter, fruitier tang.
  • Make it creamy — Stir in 2 tablespoons of heavy cream or a dollop of sour cream into the sauce right before serving for a richer, creamier finish.
  • Go gluten-free — The recipe is naturally gluten-free since it uses rice instead of breadcrumbs, but double-check your Worcestershire sauce label — some brands contain gluten.

What to Serve With Porcupine Meatballs

The saucy, savory nature of this dish calls for sides that can soak up the extra sauce or add a fresh contrast.

  • Creamy mashed potatoes — The smooth, buttery texture is the perfect canvas for the tangy tomato sauce. Russet or Yukon Gold potatoes work best.
  • Crusty bread or dinner rolls — Use them to sop up every last drop of sauce from the plate. A warm baguette or sourdough roll does the job.
  • Steamed green beans or broccoli — A simple, bright green vegetable balances the richness of the meatballs and adds color to the plate. Toss with a squeeze of lemon.
  • Buttered egg noodles — Wide egg noodles tossed in butter and parsley catch the sauce beautifully and make for a hearty, comforting meal.
  • A simple side salad — A crisp salad with a lemon vinaigrette cuts through the savory-sweet sauce and refreshes the palate between bites.
  • Roasted carrots or root vegetables — Their natural sweetness echoes the brown sugar in the sauce and adds a caramelized, earthy note.

Make-Ahead Instructions

  • Shape the meatballs in advance — Form the meatballs up to 24 hours ahead, arrange them on a parchment-lined baking sheet, cover tightly with plastic wrap, and refrigerate. Brown them just before simmering.
  • Mix the sauce ahead — Whisk together the tomato sauce, broth, Worcestershire, brown sugar, and vinegar up to 3 days in advance. Store it in a sealed jar or container in the fridge. Stir well before using.
  • Freeze uncooked meatballs — Arrange shaped but uncooked meatballs on a baking sheet in a single layer and freeze until solid (about 2 hours). Transfer to a freezer bag and store for up to 3 months. Thaw overnight in the fridge before browning and simmering.
  • Cook and freeze fully — Prepare the porcupine meatballs completely, let them cool, then freeze in a single layer on a baking sheet. Once solid, transfer to a freezer-safe container. Reheat directly from frozen on the stovetop over low heat, adding a splash of broth.

Storage and Reheating

Storage

  • Refrigerator in an airtight container — Store leftover meatballs and sauce together in a sealed container for up to 4 days. Let them cool to room temperature before sealing to avoid condensation.
  • Freezer in a single layer — For individually frozen meatballs, lay them on a baking sheet until solid, then transfer to a freezer bag. This prevents them from clumping together. Store for up to 3 months.
  • Freezer in sauce — Portion cooled meatballs and sauce into freezer-safe containers, leaving 1/2 inch of headroom. Thaw overnight in the refrigerator before reheating.

Reheating

  • Stovetop over low heat — Place leftover meatballs and sauce in a small saucepan, add 1-2 tablespoons of beef broth or water, and warm over low heat, stirring occasionally, until heated through (about 6-8 minutes).
  • Oven at 350°F (177°C) — Arrange meatballs in an oven-safe dish, spoon sauce over them, cover with foil, and bake for 15-20 minutes until hot. This method is best for larger batches.
  • Microwave in short bursts — Place individual portions in a microwave-safe bowl, cover with a damp paper towel, and heat in 30-second intervals, stirring gently between each, until steaming. Be careful not to overheat, which can dry out the meatballs.

Nutritional Breakdown (Per Serving)

Based on 1 serving = 3 meatballs with sauce, out of 4 total servings.

  • Calories: 394
  • Protein: 28g
  • Fat: 18g
  • Carbohydrates: 29g
  • Fiber: 2g
  • Sugar: 10g
  • Sodium: about 750mg

Frequently Asked Questions

Can I freeze Porcupine Meatballs?

Yes, you can freeze them either raw or fully cooked. For raw meatballs, freeze them on a baking sheet first, then transfer to a freezer bag for up to 3 months. Cooked meatballs freeze even better because the rice has already softened.

How long does Porcupine Meatballs last in the fridge?

Store cooked Porcupine Meatballs in an airtight container in the refrigerator for up to 4 days. Keep them in the sauce to maintain moisture, and add a splash of broth when reheating if the sauce thickens too much.

Why are my meatballs falling apart in the sauce?

This usually happens from overmixing the meat mixture or simmering at too high a heat. Mix the ingredients gently until just combined, and keep the sauce at a low simmer — not a rolling boil — throughout cooking.

Can I use instant rice instead of long-grain rice?

Instant rice will overcook and turn mushy during the simmering time, losing the distinct “porcupine” texture. Stick with uncooked long-grain white rice for the best results.

Do I need to cover the meatballs while they simmer?

Yes, covering them with a tight lid is essential. The trapped steam cooks the rice from the inside out and keeps the meatballs tender and moist. Lifting the lid causes the rice to take longer to cook.

Can I make these in a slow cooker?

You can — brown the meatballs first, then transfer them to the slow cooker with the sauce. Cook on low for 4-5 hours or on high for 2-3 hours. The rice may be slightly softer than the stovetop method, but the flavor is still excellent.

Final Words

This recipe delivers the kind of comfort food that feels like a warm hug after a long day. The rice-studded meatballs and tangy sauce come together in one pot with surprisingly little effort. I hope you give these Porcupine Meatballs a try soon — they deserve a spot in your regular dinner rotation.

Similar Recipes

Print

Porcupine Meatballs

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.

  • Author: Kendric adan
  • Prep Time: 15
  • Cook Time: 35
  • Total Time: 50
  • Yield: 4 1x
  • Category: Main Course
  • Method: Stovetop
  • Cuisine: American

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

  • Calories: 394
  • Sugar: 10g
  • Sodium: 750mg
  • Saturated Fat: 6g
  • Carbohydrates: 29g
  • Fiber: 2g
  • Protein: 28g
  • Cholesterol: 105mg

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

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

Recommended Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe rating