Dinner / Beef & lamb

Porcupine Meatballs

Jump to recipe
A Dutch oven of porcupine meatballs with rice grains showing at the surface, simmered in red tomato sauce and sprinkled with parsley.

Rice goes into the meatballs raw and comes out tender, with little grains bristling from the sides. Simmer them low in the tomato sauce for about forty-five minutes. The kids will want to know why they look spiky.

The short version

Mix ground beef with raw rice, onion, garlic and an egg, and roll into balls. Brown them in a Dutch oven, add tomato sauce thinned with broth, cover, and simmer on low about 45 minutes until the rice is tender and the beef reaches 160°F.

What makes ours better

small changes, very loud compliments

  • Brown the meatballs first. Two minutes per side in the pot gives a seared crust and fond, and that browning flavors the sauce. Skip it and the sauce tastes flat.

  • Thin the sauce with broth and Worcestershire. The raw rice drinks up liquid as it swells. Broth keeps the sauce loose, and Worcestershire adds savory depth to plain tomato sauce.

  • Mince the onion fine and shape loosely. The onion isn't cooked ahead, so tiny pieces soften fully. Loosely shaped meatballs leave the rice room to expand without cracking them open.

  • Check the rice, not just the clock. Long-grain rice needs about 45 minutes. Break one meatball open at the end; if the grains are still hard in the middle, simmer 10 minutes more.

What you need

check the pantry before you promise anyone

  • Ground beef1 pound
  • Yellow onion¼ cup
  • Garlic2 cloves
  • Egg1 large
  • Chopped fresh parsley2 tablespoons
  • Dried oregano½ teaspoon
  • Olive oil1 tablespoon
  • Tomato sauce2 cans

Full ingredient list ↓

Prep
20 min
Simmer
55 min
Total
1 hr 20 min incl. 5 min hands-off (go sit down)
Makes
about 20 meatballs, 4 servings

Ingredients

Makes 4 servings

Meatballs

Sauce

tap each one as it goes in. no double-salting.

Steps

go slow. the good part can’t be rushed.

  1. Mix the meatballs

    In a large bowl, combine the beef, rice, onion, garlic, egg, parsley, salt, oregano and pepper. Mix with your hands just until everything is evenly distributed.

    Don't knead. Overworked meat turns tough and packs the rice too tightly.

  2. Shape loosely

    Roll heaping tablespoons of the mixture into about 20 balls, each about 1½ inches wide. Press them just enough to hold together. Some rice grains will poke out; that's right.

  3. Brown in batches

    Heat the oil in a Dutch oven or large, deep skillet with a lid over medium-high heat. Brown the meatballs in two batches, about 2 minutes per side, turning gently. They will be fragile. Move them to a plate.

    About 8 min. Cook mode has a timer for this step.

  4. Build the sauce

    Pour off any excess fat. Add the tomato sauce, broth, Worcestershire, sugar and salt to the pot and stir, scraping up the browned bits. Bring to a simmer.

  5. Simmer covered

    Return the meatballs to the pot in a single layer, spooning sauce over them. Cover, turn the heat to low, and simmer 40 to 45 minutes, gently turning the meatballs once halfway. Add a splash of broth if the sauce gets thick.

    Keep the simmer gentle with the lid on. A hard boil breaks the meatballs apart, and a loose lid lets steam escape so the rice stays hard.

    About 40 min. Cook mode has a timer for this step.

  6. Check and rest

    Cut one meatball open. The rice should be tender, the center no longer pink, and a thermometer should read 160°F. If the rice is still firm, cover and simmer 10 minutes more. Let the pot sit off the heat for 5 minutes.

    The tomato sauce can make the meatballs look pink inside even when they're done. Trust the thermometer.

    About 5 min. Cook mode has a timer for this step.

Good to know

read this before somebody asks for seconds

  • Oven method. Skip the browning, put the shaped meatballs in a 13×9-inch dish, pour over the sauce, cover tightly with foil and bake at 350°F for about 1 hour.
  • Use plain long-grain white rice. Instant rice turns mushy and brown rice needs much longer cooking.
  • Serve with fluffy, buttery mashed potatoes or buttered noodles to soak up the sauce.
  • Storage. Refrigerate covered up to 4 days. Freeze meatballs in their sauce up to 3 months. Reheat gently on the stove with a splash of broth, since the rice will have absorbed more liquid.

Questions, answered

asked and answered at the kitchen counter

Do I cook the rice first for porcupine meatballs?

No. The raw rice goes into the meat and cooks as the meatballs simmer in the sauce, which is why the sauce has to be thin enough to give it moisture.

Why is the rice still hard in my porcupine meatballs?

The simmer was too gentle, the lid was loose, or the sauce was too thick. Add a splash of broth, cover tightly, and simmer another 10 to 15 minutes. Long-grain rice takes about 45 minutes.

Can I make porcupine meatballs in the oven?

Yes. Put the shaped meatballs in a baking dish, pour the sauce over, cover with foil and bake at 350°F for about 1 hour. It's hands-off, but you won't get the browned flavor.

Can I use ground turkey or pork?

Yes. Ground turkey, pork or a mix with beef all work. Cook poultry meatballs to 165°F and pork or beef to 160°F.

How do I keep porcupine meatballs from falling apart?

Add the egg, shape them with light pressure, and brown them gently before simmering. Keep the heat low so the sauce barely bubbles.

Can I freeze porcupine meatballs?

Yes. Freeze them in the sauce for up to 3 months. Thaw overnight in the fridge and reheat on the stove with a little broth.

From the table

Made it? I want the full report: first bite, best compliment, and who tried to take the leftovers home.

Flour on your hands? Big steps, screen stays on.

Step 1 of 6