
These charming Porcupine Meatballs mix ground beef with uncooked rice to create soft, tasty meatballs that look kind of quirky while they cook. As the rice grains stick out from the surface like tiny spikes, they earn their fun nickname. Cooked in a thick tomato sauce, these meatballs hit the sweet spot between homey and creative. This kid-friendly dish turns basic stuff from your pantry into something memorable, showing that old-school comfort cooking never loses its charm.
After making this dish countless times, I've figured out that mixing everything gently and getting the moisture just right makes for the best texture.
Handpicked Essential Ingredients
- Condensed tomato soup provides perfect sauce base
- Fresh onion adds essential flavor depth
- Long-grain rice creates ideal "quill" effect
- Extra lean ground beef prevents greasy sauce
You've got to use uncooked rice - it soaks up all the good flavors while making those signature spikes.
Step-by-Step Cooking Guide
- 1. Set everything up with care.
- Get your ground beef to room temp for easier mixing. Give the rice a quick rinse to wash off extra starch. Chop the onion into tiny bits no bigger than ¼ inch. Grab a big bowl and throw in the extra lean ground beef, rinsed uncooked rice, chopped onion, poultry seasoning, ground cloves, dried thyme, baking powder, salt, pepper, and milk. Mix with clean hands for about a minute until everything's evenly spread out. Don't mix too much or your meatballs will turn out tough.
- 2. Form evenly sized meatballs
- with damp hands or an ice cream scoop for best results. Each should be roughly 1.5 inches across, about 2 ounces each. Gently roll them between your palms until smooth. Put your shaped meatballs on a tray lined with parchment paper. Take a 9x13 baking dish and coat it with olive oil, making sure to cover the bottom and sides completely.
- 3. Put the meatballs in your oiled dish,
- keeping them about ½ inch apart so heat can move around them properly. In another bowl, mix condensed tomato soup with exactly two cans of water until it's completely smooth. Gently pour this sauce over your meatballs, letting it flow between them. The sauce should come up about halfway on the meatballs - just add a bit more water if needed.
- 4. Wrap the dish tightly with sturdy foil,
- pressing the edges down to seal it well. Put it in your oven at 350°F, right on the middle rack. Bake covered for exactly 35 minutes. Take the foil off carefully to avoid the hot steam. Keep baking without the cover for another 30-35 minutes until the rice sticks out and the sauce bubbles around the edges. Check that they've hit 165°F inside.
- 5. Let everything sit in the dish for 10 minutes
- before you serve it. During this time, the rice keeps soaking up sauce and the meatballs firm up nicely. The sauce will get a little thicker too. Look for the proper spiky look - the rice should clearly stick out from the surface. Give it a taste and add more seasoning if needed. Sprinkle with fresh parsley just before serving.

My grandma always added a tiny bit of cloves when I was a kid - it brings a gentle warmth that makes these meatballs really stand out.
Keeping Leftovers Fresh
Put cooled meatballs and sauce in a sealed container and keep in the fridge for up to 4 days. When warming them up, add a splash of water or broth to keep them moist. To freeze them, lay cooled meatballs on a tray lined with parchment, freeze until hard, then pack into freezer bags for up to 3 months. Thaw in your fridge overnight before gently warming in the oven or on the stove.

Tasty Pairing Ideas
Dish these up hot over buttery mashed potatoes, egg noodles, or fluffy rice to soak up that rich sauce. Add some steamed veggies or a crisp green salad for a complete meal. If you're having friends over, keep them warm in a slow cooker on LOW. You might want to have extra sauce on the side and scatter some fresh herbs on top before serving.
Other Ways To Cook Them
- Slow Cooker:
- Stack meatballs in a greased slow cooker, pour sauce on top. Cook on LOW 6-7 hours or HIGH 3-4 hours until rice pokes through and feels tender.
- Instant Pot:
- Use SAUTÉ function to brown meatballs. Pour in sauce, cook on HIGH pressure 15 minutes, then let pressure drop naturally for 10 minutes.
- Stovetop:
- Brown meatballs in a big Dutch oven, add sauce, cover and simmer 45-60 minutes until done.
Prep Ahead Tricks
Shape your meatballs up to a day ahead and keep them covered in the fridge. Mix your sauce ingredients in a separate container. When you're ready to cook, just put the meatballs in your baking dish and continue with the recipe. If you want to make a bigger batch, double everything but use two baking dishes so they cook evenly.

Frequently Asked Questions
- → Why are they called porcupine meatballs?
- The cooked rice sticks out from the meat, making them look like they have tiny spines
- → Can I use ground turkey instead?
- Sure, but they might not be as juicy as when you make them with beef
- → Why rinse the rice first?
- It gets rid of extra starch and makes sure the rice cooks well inside the meatballs
- → Can I freeze these?
- Absolutely, they stay good frozen in their sauce for up to 3 months
- → Why is the mixture so soft?
- Don't worry, that's normal - they'll get firmer as they cook