Italian Meatball Soup
There are few things as comforting as a big pot of soup simmering on the stove, and this Italian Meatball Soup is one of my absolute favorites.
I decided to make it on a whim one chilly afternoon, and the aroma that filled my kitchen was just incredible. The tender, flavorful meatballs, the rich beefy broth, and all those hearty vegetables came together perfectly.
It felt like a warm hug in a bowl, a truly satisfying meal that my whole family devoured. This recipe has quickly become a go-to for me, especially for a cozy weeknight dinner.
Ingredients
Here is the full list of ingredients you’ll need. Taking a few moments to chop your veggies and measure everything out will make the cooking process much more relaxed.
For the Meatballs:
- 3/4 lb ground beef: I find an 80/20 blend works best; it has enough fat to keep the meatballs moist and flavorful without making the soup greasy.
- 1/2 cup freshly shredded Parmesan cheese: Using a block of Parmesan and grating it yourself ensures the cheese melts beautifully into the meatballs, adding a salty, nutty flavor.
- 3 tbsp chopped fresh parsley: Fresh parsley adds a bright, clean taste that cuts through the richness of the beef.
- 1 large egg: This is the essential binder that holds all the meatball ingredients together.
- 2 cloves garlic, minced: Finely minced fresh garlic provides that classic Italian aroma and a pungent, savory kick.
- 1/2 tsp kosher salt: Kosher salt has a cleaner flavor and larger crystals, which help season the meat more evenly.
- 1/2 tsp black pepper: Freshly ground black pepper will give you the most robust and aromatic flavor.
- 1/4 tsp ground oregano: A classic Italian herb that adds a peppery, slightly sweet note.
- 2 tsp lemon juice: This might seem unusual, but a little acid brightens all the other flavors in the meatballs.
For the Soup:
- 3 tbsp olive oil: Used for browning the meatballs, it adds a foundational, fruity flavor to the soup.
- 7 cups low-sodium beef stock: Using low-sodium stock allows you to control the final saltiness of the soup.
- 2 tbsp tomato paste: This adds a concentrated, rich tomato flavor and a beautiful color to the broth.
- 1/4 cup fresh parsley leaves: These go into an herb bundle to infuse the broth with a fresh, herbaceous essence.
- 2 bay leaves: Bay leaves contribute a subtle, almost minty background note that deepens the soup’s complexity.
- 1 tsp black peppercorns: Whole peppercorns release their flavor slowly, adding a mild, lingering heat to the broth.
- 3/4 cup chopped onion: The essential aromatic base for almost any great soup.
- 3/4 cup chopped carrot: Adds a touch of sweetness and vibrant color.
- 3/4 cup chopped celery: Provides a savory, slightly peppery flavor that complements the other vegetables.
- 1 cup chopped russet potato: This starchy potato helps to slightly thicken the soup and makes it more substantial.
- 1/2 lb green cabbage, thinly sliced: Cabbage adds a wonderful texture and a mild, sweet flavor as it softens in the soup.
Note: This recipe makes approximately 8 servings.
Variations
One of the best things about this soup is how easily you can adapt it. Here are a few ideas to get you started.
- Add Some Greens: For an extra dose of nutrients, stir in a few handfuls of fresh spinach or chopped kale during the last few minutes of cooking until they are just wilted.
- Make it Spicy: If you like a little heat, add a pinch of red pepper flakes to the meatball mixture or directly into the soup broth.
- Include Pasta: To make the soup even heartier, add about a half-cup of small pasta like ditalini or orzo along with the vegetables. You may need to add a bit more broth as the pasta will absorb liquid.
- Protein Swap: Feel free to substitute the ground beef with ground Italian sausage (hot or mild), ground turkey, or ground chicken for a different flavor profile.
Cooking Time
- Prep Time: 30 minutes
- Cooking Time: 45 minutes
- Total Time: 1 hour 15 minutes
Equipment You Need
- Large Bowl: For mixing the meatball ingredients thoroughly.
- Heavy Pot or Dutch Oven: A heavy-bottomed pot is ideal for browning the meatballs and simmering the soup evenly.
- Cheesecloth and Kitchen Twine: To create the herb bundle, which makes it easy to remove the aromatics before serving.
- Sharp Knife and Cutting Board: Essential for safely and efficiently chopping all the vegetables.
- Slotted Spoon: Useful for removing the browned meatballs from the pot while leaving the flavorful drippings behind.
How to Make Italian Meatball Soup?
This hearty soup comes together in just a few straightforward stages, starting with crafting the perfect meatballs and ending with a rich, vegetable-packed broth. The process involves browning the meatballs, creating a flavorful broth, and then simmering everything together until the vegetables are tender and the flavors have melded into a delicious, cohesive dish.

Make and Brown the Meatballs
In a large bowl, combine the ground beef, Parmesan cheese, chopped parsley, egg, minced garlic, salt, pepper, oregano, and lemon juice. Gently mix until just combined, then shape the mixture into small, 1-inch meatballs. Chilling them for about 30 minutes helps them hold their shape. Next, heat the olive oil in a heavy pot over medium-low heat and brown the meatballs on all sides. You don’t need to cook them through; just get a nice color on the outside. Remove them to a plate.
Create the Flavorful Broth
To the same pot, add the beef stock, 2 cups of water, salt, and tomato paste, stirring to combine. Bring this mixture to a boil. While it heats up, create your herb bundle by wrapping the fresh parsley leaves, bay leaves, and peppercorns in a piece of cheesecloth and tying it securely with twine. Add the bundle to the pot, reduce the heat, and let the broth simmer for about 30 minutes to allow the flavors to infuse.
Simmer the Vegetables
After the broth has simmered, add the chopped onion, carrots, celery, and potatoes to the pot. Let these vegetables simmer in the broth for about 15 minutes, or until they begin to soften. Once the vegetables are partially cooked, you can remove and discard the herb bundle.
Finish and Serve the Soup
Finally, add the thinly sliced cabbage and the browned meatballs back into the pot. Bring the soup to a boil once more, then immediately reduce the heat to a simmer. Cook for another 8 to 10 minutes, just until the cabbage is tender and the meatballs are cooked through. Be careful not to overcook, as the meatballs can become dry. Serve hot with a generous sprinkle of extra Parmesan cheese.
Additional Tips for Making this Recipe Better
- I always use a light hand when mixing the meatball ingredients. Overworking the meat can make the meatballs tough, and we want them to be tender.
- Don’t overcrowd the pot when browning the meatballs. I do this in two batches to ensure they get a nice, even sear on all sides, which adds a ton of flavor.
- When I add the tomato paste, I like to cook it for a minute in the pot before adding the stock. This deepens its flavor and removes any raw taste.
- For an even richer broth, I sometimes use a combination of beef and chicken stock. It adds another layer of flavor that is absolutely delicious.
How to Serve Italian Meatball Soup?
This soup is a full meal in a bowl, but the right accompaniments make it even better. Serve it piping hot, garnished with a generous amount of freshly grated Parmesan cheese and a sprinkle of chopped fresh parsley. The warmth of the soup will slightly melt the cheese, creating a wonderfully savory topping.
Crusty bread is a must-have for dipping into the rich broth. A warm loaf of ciabatta or a simple baguette is perfect for sopping up every last drop. For a more complete meal, you could also serve it alongside a simple green salad dressed with a light vinaigrette to provide a fresh, crisp contrast.

Nutritional Information
Here is a general overview of the nutritional content for one serving of this soup.
- Calories: Approximately 350-450 kcal
- Protein: Approximately 20-25g
- Carbohydrates: Approximately 15-20g
- Fat: Approximately 20-25g
Make Ahead and Storage
Refrigerator Storage
You can store leftover soup in an airtight container in the refrigerator for up to 3-4 days. The flavors often become even more developed overnight, making for fantastic leftovers.
Freezing Guidelines
This soup freezes exceptionally well. Allow it to cool completely before transferring it to freezer-safe containers. It can be frozen for up to 3 months without losing its quality.
Reheating Instructions
To reheat, thaw the soup in the refrigerator overnight if frozen. Gently warm it in a pot over medium-low heat on the stovetop, stirring occasionally until it is heated through. Avoid boiling it to maintain the texture of the meatballs and vegetables.
Why You’ll Love This Recipe?
This soup is sure to become a staple in your home for many reasons. Here are just a few you’ll appreciate.
- Hearty and Satisfying: Packed with tender meatballs and plenty of vegetables, this soup is a complete and filling meal all on its own.
- Incredibly Flavorful: The combination of savory meatballs, a rich beef broth infused with herbs, and hearty vegetables creates a soup with deep, comforting flavor.
- Perfect for Any Occasion: It’s simple enough for a cozy weeknight dinner but also impressive enough to serve to guests at a casual gathering.
- Great for Meal Prep: This recipe makes a large batch and tastes even better the next day, making it an excellent choice for lunches or future dinners.