Porcupine Balls Recipe Tomato Soup: Meatball Surprise in Savory Broth

Porcupine Balls Recipe Tomato Soup: Meatball Surprise in Savory Broth

There’s a comfort in this dish that reminds me of Sunday dinners in Sicily, though with an American twist. The porcupine balls bring texture to a rich, savory tomato broth that warms from the first spoonful.

I developed this recipe to combine tender meatballs with a hearty soup base, using simple ingredients that come together beautifully. The rice in the meatballs expands as they cook, creating that signature “porcupine” effect.

What emerges is a complete meal in one pot—tender meatballs floating in a velvety tomato broth that’s perfect for soaking up with crusty bread. The flavors deepen as it simmers, making it taste even better the next day.

This is the kind of dish that turns a simple weeknight into something special. Here’s how to make it at home.

👨‍🍳
Difficulty
Medium
🥩
Diet
Meat
⏱️
Total Time
30 min
🔥
Calories
Med Cal

Ingredients for Porcupine Balls Recipe Tomato Soup

Simple ingredients create this hearty one-pot meal with tender meatballs in rich tomato broth.

Ingredient Amount Notes
Ground Beef 🥩 1 lb 80/20 fat ratio preferred
Uncooked White Rice 🍚 ½ cup Long-grain or jasmine
Yellow Onion 🧅 1 whole Finely diced for meatballs
Garlic Cloves 🧄 3 cloves Minced for soup base
Large Egg 🥚 1 whole For binding meatballs
Breadcrumbs 🍞 ½ cup Plain or Italian-style
Canned Tomato Sauce 🍅 2 cups Plain, no seasoning added
Beef Broth 🥣 4 cups Low-sodium preferred
Dried Oregano 🌿 1 tsp For seasoning soup
Dried Basil 🍃 1 tsp For seasoning soup
Salt 🧂 1 tsp Divided between meatballs and soup
Black Pepper 🌶️ ½ tsp Freshly ground preferred
Olive Oil 🫒 2 tbsp For browning meatballs
Worcestershire Sauce 💧 1 tbsp For depth in meatballs

The ground beef is key here. 80/20 fat ratio keeps the meatballs moist as they cook in the broth. Look for fresh, bright red beef at your butcher or Whole Foods—avoid anything gray or dull. The rice absorbs liquid as it cooks, so use long-grain white rice for the right texture. Pre-cooked rice won’t work; it needs to expand in the soup.

No ground beef? Ground turkey or pork work too, but may need a splash of broth to stay tender. Out of tomato sauce? Crushed tomatoes blended smooth gets you close. For the broth, vegetable broth with a splash of soy sauce adds umami. The Worcestershire can be swapped with soy sauce in a pinch—just use half the amount to avoid over-salting.

Meatballs taste even better the next day—flavors meld overnight. Stores in the fridge for 3-4 days or freezes for 3 months. Portion into containers for easy reheating. The soup thickens as it sits, so add a splash of broth when reheating.

❤️

Why You’ll Love This Recipe

  • One Pot Wonder: I love that everything cooks together in the same pot—no extra dishes, just tender meatballs simmering in the tomato soup.
  • Savory Comfort: The garlic and onion in the beef mix with the tomato soup create this rich, hearty flavor that’s pure comfort food.
  • Freezer Friendly: I make a big batch and freeze half for those nights I just don’t feel like cooking.
  • Budget Stretcher: Ground beef and rice go a long way, and it fills up the family without breaking the bank.

Step-by-Step Instructions for Porcupine Balls in Tomato Soup

Here’s the method that ensures tender meatballs and a rich, savory broth every time.

Step 1: Prepare the Porcupine Meatball Mixture

In a large bowl, combine the 1 lb Ground Beef, 0.5 cup Uncooked White Rice, 1 whole Large Egg, 0.5 cup Breadcrumbs, and 1 tbsp Worcestershire Sauce. I like to use my hands for this—they mix the ingredients more thoroughly than a spoon.

Finely dice the 1 whole Yellow Onion and add half to the meatball mixture, reserving the rest for the soup base. Season with ½ tsp Salt and ¼ tsp Black Pepper. The mixture should hold together when pressed but not be overly dense. Shape into 1-inch balls—they’ll expand as the rice cooks inside.

Step 2: Brown the Meatballs for Maximum Flavor

Heat the 2 tbsp Olive Oil in a large pot or Dutch oven over medium-high heat. Working in batches to avoid crowding, brown the meatballs on all sides for 3-4 minutes total. You want a deep golden crust—this adds rich flavor to the broth.

Don’t cook them through at this stage; they’ll finish in the liquid. Remove the browned meatballs to a plate and set aside. The fond left in the pot will become the flavor base for your soup. If the pot looks dry, don’t worry—it will deglaze when you add the liquids.

Step 3: Build the Tomato Soup Base

In the same pot, add the remaining diced Yellow Onion and the 3 cloves Garlic Cloves, minced. Sauté for 2-3 minutes until softened and fragrant. Pour in the 2 cups Canned Tomato Sauce and 4 cups Beef Broth, stirring to combine.

Add the 1 tsp Dried Oregano, 1 tsp Dried Basil, remaining ½ tsp Salt, and remaining ¼ tsp Black Pepper. Bring the mixture to a gentle boil, then reduce heat to medium-low. The soup should simmer with small bubbles breaking the surface occasionally.

Step 4: Simmer Until Meatballs Are Cooked Through

Return the browned meatballs to the pot, ensuring they’re mostly submerged in the liquid. Cover and simmer for 30-35 minutes. You’ll know they’re done when the rice inside the meatballs is tender and the internal temperature reaches 160°F.

Stir occasionally and check that the soup maintains a gentle simmer. If it’s boiling too vigorously, reduce the heat slightly. The rice will absorb some liquid, and the meatballs will plump up as they cook. The soup should thicken slightly but still have a brothy consistency.

Step 5: Rest and Serve

Once the meatballs are cooked through, remove the pot from heat and let it sit covered for 5 minutes. This resting period allows the flavors to meld together and the meatballs to firm up slightly.

Ladle the porcupine balls and tomato soup into bowls. Each serving should have 3-4 meatballs with plenty of the rich tomato broth. The rice inside the meatballs will continue to absorb liquid as it sits, so serve promptly for the best texture.

👨‍🍳

Pro Tips For Making Porcupine Balls Recipe Tomato Soup

  • Use Cold Rice: Rinse the uncooked white rice in cold water first to remove excess starch—this keeps the porcupine balls from turning mushy as they simmer in the tomato soup.
  • Bind It Tight: Let the ground beef, rice, egg, and onion mixture rest for 10 minutes before rolling—it helps everything stick together better, especially with leaner beef.
  • Simmer Don’t Boil: Keep the tomato soup at a gentle simmer, not a rolling boil, or the meatballs will break apart before the rice cooks through.
  • Sauté Onions First: Cook the yellow onion and garlic until soft before mixing into the beef—raw bits in the center of a porcupine ball are nobody’s idea of a good surprise.

Common Mistakes When Making Perfect Results

Overmixing Meatballs

When combining the Ground Beef, Uncooked White Rice, and other ingredients, mix just until combined. Overworking creates dense, tough meatballs instead of the tender texture you want. I use my hands and stop as soon as everything holds together. 💪

Skipping the Browning

Browning the meatballs before simmering adds deep flavor to both the balls and the broth. Don’t rush this step—3-4 minutes per batch over medium-high heat creates that essential crust. The fond left in the pot is pure flavor waiting to happen.

Using Precooked Rice

The Uncooked White Rice is crucial—it absorbs the broth as it cooks, creating the signature porcupine texture. Precooked rice turns mushy and falls apart. Stick to long-grain white rice for the best results.

Overcrowding the Pot

When browning, work in batches to avoid crowding. Too many meatballs at once lowers the temperature and steams rather than browns. I use my Dutch oven and do 2-3 batches for perfect color on all sides.

Boiling Vigorously

Once the meatballs are back in the pot, maintain a gentle simmer, not a rolling boil. Boiling can break apart the meatballs and make the rice inside unevenly cooked. Keep it at medium-low heat with small bubbles.

Skipping the Rest

That 5-minute rest after cooking lets flavors meld and meatballs firm up. Serving too soon can lead to meatballs that fall apart in the bowl. This is Nonna’s secret to perfect texture every time. 🍲

Nutrition Facts

Servings 4
Amount Per Serving
Calories 420kcal
% Daily Value
Total Fat 24g31%
Saturated Fat 8g40%
Cholesterol 110mg37%
Sodium 850mg37%
Total Carbohydrate 28g10%
Dietary Fiber 3g11%
Sugars 6g
Protein 24g48%
Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently Asked Questions

1

Can I use a different type of rice?

Stick to long-grain white rice for the best texture. Brown rice or instant rice won’t absorb liquid the same way and can make the meatballs mushy or dry. The uncooked rice is key to the signature porcupine effect.

2

Why do my meatballs fall apart in the soup?

This usually happens if the mixture is too wet or not rested enough. Ensure you use 1 egg and 0.5 cup breadcrumbs for binding, and let the soup rest for 5 minutes before serving to let them firm up.

3

Can I make this ahead of time?

The flavors actually improve overnight. Store in an airtight container in the fridge for up to 3-4 days, or freeze for 3 months. Reheat gently on the stove with a splash of broth.

4

What can I serve with this dish?

Crusty bread is perfect for soaking up the rich tomato broth. A simple green salad or garlic knots make great sides. For a heartier meal, add a side of roasted vegetables.

★★★★★4.6(7 reviews)
Allison Carter