Beef
Porcupine Meatballs
Bristling with rice quills, oven baked porcupine meatballs are hearty and unique. You'll love this old-fashioned recipe that adds uncooked rice to traditional meatballs.

At a glance
What stands out: Bristling with rice quills, oven baked porcupine meatballs are hearty and unique. You’ll love this old-fashioned recipe that adds uncooked rice to traditional meatballs. Porcupine meatballs are a fun twist on classic meatballs, and they’re straightforward to mix.
How long it takes: 20 minutes prep, plus 1 hour, 15 minutes in the oven
Equipment you’ll need: Dutch oven or large baking dish
Servings: 4

We'd say that porcupine meatballs rank right up there with Dutch baby pancakes when it comes to strange (some might say unfortunate) recipe names. Luckily, there are no spiky large rodents involved in this recipe, just rich, tender meatballs with “quills” of white rice.
Porcupine Meatballs
A standby kind of retro recipe. Porcupine meatballs are a recipe that’s loaded with nostalgia. There are many versions of it: on the stovetop, baked in the oven, in an Instant Pot, or slow cooked in a crockpot. We tested several methods and recipes to come up with the reliable porcupine meatball recipe.
Oven baked. We found that baking works a standby. You don’t have to brown the meatballs first. We especially like that the recipe is largely hands-off once you get the meatballs in the oven. (The stovetop does yield a thicker sauce, though, if that matters to you.)
Versatile. You can spoon the meatballs and sauce over spaghetti as you would with traditional spaghetti sauce but since the meatballs already contain rice, they can be simply paired with a vegetable or salad for a straightforward complete meal.
Alicia Said:
“Great recipe! Very flavorful- definitely a keeper. We used 80/20 ground beef. So rich! Thanks for sharing.”
See More Reader ReviewsWhat goes in
- Lean Ground Beef: We prefer to use lean 92/8 ground beef for these meatballs. We also tested it with 85/15 which works fine but the sauce is a bit greasier.
- Uncooked White Rice: No need for anything fancy; save that for Instant Pot jasmine rice.
- Onion: Use a cooking onion or yellow onion which has finer texture than a sweet onion. You want the onion to be very finely minced so it adds flavor throughout the porcupine meatballs without adding texture.
- Milk: Milk is your Italian grandma’s secret to reliable meatballs. It adds richness and ensures that your meatballs are tender.
- Seasonings: Fresh garlic, dried parsley, kosher salt, and ground black pepper.
- Tomato Sauce: The base of the sauce is plain canned tomato sauce that you’ll doctor up with a few pantry ingredients.
- Beef Broth: The broth will make the sauce look quite soupy at first, but it’s necessary for cooking the rice.
- Brown Sugar: A bit of sugar cuts the acidity of the tomato sauce.
- Worcestershire Sauce: An umami powerhouse, Worcestershire sauce adds lots of flavor.
- Seasonings: Garlic powder, dried oregano, dried basil, and coarse ground black pepper are simple pantry ingredients.
How it comes together
Get ready. Preheat your oven to 350ºF and coat a Dutch oven or baking dish with nonstick cooking spray.
Mix meatball ingredients. In a large bowl, mix together all of the meatball ingredients until they’re well-combined. Don’t be squeamish—using your hands can make it easier!
Shape. Using your hands or a scoop, shape 1 ½ tablespoon portions of the meat mixture into meatballs.
Cooking Tip
The size of the meatballs matters in this recipe. We recommend that each meatball be made with roughly 1½ tablespoons of the meat-and-rice mixture (we use a scoop). More than that, the rice in the center won’t get fully cooked; less than that, you end up with small meatballs.
Make sauce. In a separate bowl, stir together the tomato sauce, broth, and seasonings.
Combine. Place the meatballs into the prepared pan. Pour the sauce on top. The sauce should nearly cover the meatballs at first (ideally, even more so than these photos).
Cover. If you’re using a Dutch oven, cover it with the lid. Baking dishes can be covered tightly with foil.
Bake. Bake the porcupine meatballs for 60 minutes, then uncover and continue baking for another 15 minutes to thicken the sauce. Serve immediately.
Stovetop Method
Heat 1 tablespoon oil in a large skillet set over medium-high heat. Brown the meatballs, then add the tomato sauce and bring to a simmer. Reduce the heat to low, cover, and cook for about 60 minutes, stirring occasionally, until the meatballs are cooked and the rice is tender.
Ways to serve it
- Vegetables: a straightforward vegetable side like air fryer broccoli, roasted green beans, or sautéed spinach are reliable for rounding out your dinner.
- Salad: Serve the meatballs with a sweet kale salad, Brussels sprouts salad, or broccoli cauliflower salad.
- Bread: A loaf of warm crusty bread is reliable for sopping up the extra sauce.
- Polenta: Creamy Instant Pot polenta makes an excellent base for any kind of meatballs.
- Pasta: Cook a pot of pasta and serve the meatballs and sauce over the top. We also love to serve porcupine meatballs with a side of stovetop mac and cheese. The meatballs also go well with a pasta salad, such as ranch pasta salad or orzo salad with yogurt dill dressing.
Make Ahead Ideas
You can shape and refrigerate porcupine meatballs up to two days in advance to get a head start on this recipe. If you’d like, you can also mix the sauce and store that separately.
Keeping leftovers
Store leftovers in an airtight container in the refrigerator for up to 5 days. Reheat them with the sauce in the microwave or in a pan on the stovetop.
You can also freeze cooked porcupine meatballs in the sauce for up to 3 months. Thaw them in the refrigerator before reheating according to the instructions above.

Free Meal Plan
Interested in a weekly meal plan that includes this recipe? Take a look at Meal Plan #69. You’ll find a wholesome recipe for each weekday plus a categorized grocery list.
Browse Meal Plans- Yield: 4
- Prep: 20 minutes
- Cook: 1 hour 15 minutes
- Total: 1 hour 35 minutes
Ingredients
For the Meatballs:
- 1 pound lean ground beef (we use 92/8)
- ½ cup uncooked white rice
- ¼ cup finely diced onion
- ¼ cup milk
- 1 clove garlic, minced
- 1 teaspoon dried parsley
- ½ teaspoon kosher salt
- ¼ teaspoon coarse ground black pepper
For the Sauce:
- 1 can (15 ounces) tomato sauce
- 1 cup beef broth
- 1 tablespoon brown sugar
- 1 tablespoon Worcestershire sauce
- ½ teaspoon garlic powder
- ½ teaspoon dried oregano
- ½ teaspoon dried basil
- ¼ teaspoon coarse ground black pepper
Method
- Preheat oven to 350ºF and spray a Dutch oven or a 9 x 13 inch baking dish with nonstick cooking spray (see note below regarding pan size).
- In a large bowl, combine the ground beef, uncooked white rice, onion, milk, garlic, dried parsley, salt, and black pepper. Mix until all the ingredients are well combined.
- Using your hands or a scoop, shape the meat mixture into meatballs, each about 1 ½ tablespoons (see note), placing them into the pan in a single layer.
- In a separate bowl, combine the tomato sauce, broth, brown sugar, Worcestershire sauce, garlic powder, dried oregano, dried basil, and black pepper. Mix well.
- Pour sauce over meatballs. The sauce should nearly cover the meatballs. If using a Dutch oven, place lid on. If using a 9 x 13 inch pan, cover tightly with foil.
- Bake for 60 minutes. Uncover and continue baking for another 15 minutes to thicken sauce slightly.
- Serve immediately with sides of your choice.
Notes
Pan size: These work best in a Dutch oven or dish where the meatballs fit in a single layer with not too much space in between them. The sauce should nearly cover the meatballs at the beginning of the cook time. If you have a larger pan, leave the pan covered the whole baking time so the meatballs don’t dry out. If they seem like they are drying out, spoon some of the sauce on top of the meatballs.
Meatball size: Try not to make the meatballs larger than 1 ½ tablespoons. The rice in the center of the meatball may not cook completely in larger meatballs, and may remain crunchy. If you’re having trouble with this, towards the end of cook time, cut each meatball in half and continue to cook for 10 minutes to help the rice in the center cook. They won’t be as pretty, but it gets the job done in a pinch.
Stovetop method: In a large skillet (with a cover available), heat 1 tablespoon oil over medium-high heat. Add the meatballs and brown them on all sides, 1 to 3 minutes per side. Pour the tomato sauce mixture over the browned meatballs in the skillet. Bring to a simmer. Reduce heat to low, cover the skillet, and let the meatballs simmer in the sauce for about 60 minutes, or until the meatballs are fully cooked and the rice is tender (you may want to cut one open to check the rice in the center). Stir occasionally, turning the meatballs and spooning the sauce over them.








