
These charming Porcupine Meatballs mix ground beef with uncooked rice to create tender, tasty meatballs with a fun twist. As they cook, the rice sticks out from the surface like tiny spikes, giving them their cute name. They simmer away in a thick tomato sauce, making a dish that's both homey and interesting. This kid-friendly meal turns basic stuff from your pantry into something really special, showing why old-fashioned comfort foods still win our hearts today.
I've made this dish countless times, and I've found that mixing things gently and getting the moisture just right makes them turn out perfectly.
Key Ingredients Breakdown
- Fresh onion gives these meatballs their rich flavor
- Condensed tomato soup creates the ideal sauce
- Long-grain rice makes those classic little "spikes"
- Extra lean ground beef keeps everything from getting greasy
Using uncooked rice is super important - it soaks up all the tasty flavors while making those cute little spikes.
Step-by-Step Preparation Guide
- 1. Get everything ready for easy mixing.
- Use ground beef that isn't cold from the fridge. Give your rice a quick rinse. Chop your onion into tiny bits, no bigger than ¼ inch. Grab a big bowl and put in your lean ground beef, the rice you just rinsed, those onion bits, poultry seasoning, ground cloves, dried thyme, baking powder, salt, pepper, and milk. Mix it all up with your hands, but don't go crazy - just about a minute until everything's mixed. If you work it too much, your meatballs will end up tough.
- 2. Form the mixture into balls
- with wet hands or use an ice cream scoop if you have one. Try to make them all the same size, about 1.5 inches across, weighing around 2 ounces each. Roll them gently in your palms until smooth. Set them on a tray lined with parchment paper. Get your 9x13 baking dish ready by rubbing it with olive oil all over the bottom and sides.
- 3. Put the meatballs in your oiled dish,
- making sure to leave some space between them so they cook evenly. In another bowl, mix your condensed tomato soup with exactly two cans of water until it's nice and smooth. Pour this sauce carefully around the meatballs, not directly on top. The sauce should come up about halfway on the meatballs - add a bit more water if needed.
- 4. Cover the dish tightly with foil,
- making sure to seal the edges well. Put it in your oven at 350°F, right on the middle rack. Let it bake covered for exactly 35 minutes. Take the foil off carefully (watch out for steam!). Let it keep cooking uncovered for another 30-35 minutes until you can see the rice poking out and the sauce is bubbling around the edges. Check that they're done - they should be 165°F inside.
- 5. Let everything sit for 10 minutes
- before you dig in. During this time, the rice will soak up more sauce and the meatballs will set nicely. The sauce will get a bit thicker too. Make sure the rice is sticking out like little quills. Give it a taste and add more seasonings if needed. Sprinkle with some fresh parsley before bringing it to the table.

My grandma always taught me to toss in a tiny bit of cloves when making these - it adds this warm, cozy flavor that makes them taste extra amazing.
Keeping It Fresh
Pop cooled leftovers in a sealed container and they'll stay good in your fridge for about 4 days. When warming them up, add a little splash of water or broth to keep them moist. Want to freeze them? Cool them first, then lay them out on a tray lined with parchment paper. Once they're frozen solid, toss them in freezer bags and they'll keep for up to 3 months. Just let them thaw in your fridge overnight before warming them up slowly in the oven or on the stove.

Perfect Pairings
These taste amazing served over fluffy mashed potatoes, buttery egg noodles, or a bed of steamed rice to soak up all that yummy sauce. Add some steamed veggies or a crisp green salad on the side for a complete meal. Having friends over? Keep them warm in a slow cooker set to LOW. You might want to have extra sauce handy, and don't forget to sprinkle some fresh herbs on top before serving.
Different Ways To Cook
- Slow Cooker:
- Put your meatballs in a greased slow cooker, pour the sauce on top, and let them cook on LOW for 6-7 hours or HIGH for 3-4 hours until the rice pokes through.
- Instant Pot:
- Use the SAUTÉ setting to brown your meatballs first. Pour in the sauce, then cook on HIGH pressure for 15 minutes and let the pressure release naturally for 10 minutes.
- Stovetop:
- Brown your meatballs in a big Dutch oven, add the sauce, then cover and simmer for 45-60 minutes until they're done.
Prep Ahead Tricks
You can shape your meatballs up to a day ahead and keep them covered in the fridge. Mix your sauce ingredients separately too. 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 big batch, double everything but use two baking dishes so they'll cook evenly.

Frequently Asked Questions
- → Why are they called porcupine meatballs?
- As they cook, rice grains stick out like porcupine spikes.
- → Can I use ground turkey instead?
- Sure, but the texture may be a bit firmer than beef.
- → Why rinse the rice beforehand?
- It removes starch, so the rice cooks evenly inside the meat.
- → Can I freeze them after cooking?
- Absolutely! They store well in the sauce for up to three months.
- → Why is the mix so soft?
- That’s normal! The meatballs firm up while they’re cooking.