Meatball Soup transforms simple ingredients into a restaurant-quality meal that fills your kitchen with the aroma of Italian herbs and simmering tomatoes. I learned this technique from my grandmother during those Sunday afternoons on her Midwest farm, where a pot of soup on the stove meant family was gathering soon.
There’s something magical about watching meatballs simmer in a savory broth, releasing their flavors while pasta curls around them. In my grandmother’s kitchen, soup wasn’t just dinner, it was the centerpiece of connection, served in deep bowls with crusty bread for dipping. She’d always say that good soup should make you want to linger at the table, and this meatball soup does exactly that. The combination of beef and chicken broth creates depth you can’t get from just one, while that dollop of ricotta on top? Pure genius. Time to get your hands floury and your kitchen smelling incredible.
What Makes This Meatball Soup So Special
After decades of making soup in my Midwest kitchen, the best meatball soup balances rich flavors with practical weeknight cooking. This recipe combines Italian tradition with the hearty comfort my family craves, especially on chilly evenings when we need something that sticks to your ribs.
- Uses pantry staples you likely already have, from canned tomatoes to dried herbs
- Ready in about 45-50 minutes, perfect for busy weeknights when everyone’s hungry
- Homemade meatballs with panade stay incredibly juicy instead of turning tough
- Dual broth system (chicken and beef) creates restaurant-quality depth without fussing with stock pots all day
- Flexible pasta options let you cook noodles right in the soup or serve them on the side for better leftovers
- Feeds a crowd with 13 cups of soup (8 generous servings) that stretches beautifully for family gatherings
Using both ground beef and pork in the meatballs creates a texture and flavor combination that pure beef just can’t match. The pork adds richness while keeping everything tender.

Ingredient Spotlight
Panade (breadcrumb mixture): This combination of heavy cream, egg, and Italian breadcrumbs is the secret to meatballs that stay moist and tender even after simmering in the soup. I always let the breadcrumbs soak for the full 1-2 minutes, that’s when the magic happens.
Ground beef and pork combination: Using half beef and half pork creates meatballs with the perfect balance of flavor and fat content. In my kitchen, I prefer 80% lean beef because it adds richness without making the soup greasy.
Dual broth system: The combination of 3 cups chicken broth with 1½ cups beef broth gives this soup incredible depth. All chicken broth works fine, but that beef broth really takes it to the next level.
Tomato paste: This concentrated flavor bomb gets cooked with the aromatics for just one minute, which caramelizes the sugars and removes any metallic taste. Betty always said to never skip this step.
Heavy cream: Added at the end, the cream softens the acidity of the tomatoes and creates a velvety texture that makes each spoonful feel luxurious. I typically add it after the pasta is cooked so it doesn’t break.
Fresh spinach: Two cups of spinach wilts down to almost nothing but adds beautiful color and nutrition. Adding spinach at the very end keeps it bright green instead of army-green, which happened to me more than once when I first started making this.
Ricotta cheese topping: This is what transforms soup into a restaurant-quality meal. The cool, creamy ricotta melts slightly into the hot soup, creating little pockets of richness in every bite.
Italian seasonings blend: Using equal parts oregano, basil, parsley, and mustard powder with a pinch of red pepper flakes creates that classic Italian flavor profile without needing to buy expensive spice blends.
How to Make Meatball Soup Step by Step
Step 1. Whisk the egg and cream together first, then let the breadcrumbs soak for a full 1-2 minutes to create a panade that keeps meatballs incredibly tender. Add your Parmesan, garlic, salt, and pepper to this mixture before gently folding in the ground meats. Overmixing makes tough meatballs, so use a light hand.
Step 2. Roll the meat mixture into 1-inch balls, which I measure by using a small cookie scoop for consistent sizing. Betty’s tip: wet your hands slightly to prevent sticking.
Step 3. Brown the meatballs in batches over medium-high heat for 2-3 minutes, which creates a golden-brown, flavorful crust without cooking them through. Don’t crowd the pan because they need space to brown properly, not steam.
Step 4. Use your immersion blender to break down the canned diced tomatoes in a large bowl until mostly smooth with some small chunks remaining, about 10-15 seconds. Set aside.
Step 5. Melt butter in the same pot where you browned the meatballs, then cook diced onions over medium-low heat for a full 10 minutes until they’re soft and sweet. Add bell peppers and cook for 4 more minutes. This is where the flavor foundation builds.
Step 6. Add the tomato paste, garlic, and seasonings together, cooking for just 1 minute to bloom the spices and caramelize the paste. This step prevents any raw garlic bite.
Step 7. Add both broths and the blended tomatoes, bring everything to a boil, then reduce to a simmer for 15 minutes uncovered. Letting it simmer uncovered allows the flavors to concentrate.
Step 8. Bring the soup back to a gentle boil, add your meatballs and dry pasta, and cook until the pasta reaches al dente. Small pasta shapes like ditalini take about 8 minutes, small shells need 9 minutes, and orzo cooks in about 7 minutes. My family prefers ditalini or small shells.
Step 9. Reduce heat to low and stir in the heavy cream, followed immediately by the spinach. The residual heat wilts the spinach perfectly in about 1 minute without overcooking it. Taste and adjust salt and pepper as needed.
Step 10. Ladle the meatball soup into deep bowls and top each serving with a generous dollop of ricotta cheese (about 2 tablespoons), a sprinkle of Parmesan, and red pepper flakes to taste.
Keeping This Meatball Soup Fresh
I typically store leftover meatball soup in airtight containers in the refrigerator for up to 3 days, though in my house it rarely lasts that long. The flavors actually deepen overnight as the herbs and tomatoes meld together. One important thing: if you’re planning leftovers, cook the pasta separately and add it to individual portions when reheating. Otherwise, those noodles will continue absorbing broth and turn mushy.
Betty’s freezing method works beautifully for this soup, but I always freeze it without the pasta. Pour cooled soup into freezer-safe containers, leaving an inch of headspace for expansion, and freeze for up to 3 months. The meatballs hold up perfectly in the freezer, and the tomato base actually tastes fresher than some frozen soups. When you’re ready to eat, thaw overnight in the refrigerator.
For the best texture, I reheat meatball soup gently on the stovetop over medium-low heat, stirring occasionally until warmed through. If you froze it without pasta, this is when you’d cook fresh noodles separately and add them to the reheated soup. Microwave reheating works in a pinch with 50% power, stirring every minute to prevent hot spots. Adding a splash of fresh broth when reheating helps restore the original consistency if the soup has thickened.

Perfect Partners for Meatball Soup
- Crusty Italian Bread: The soup’s rich tomato broth practically begs for bread to soak it up. I love serving warm, crusty bread with softened butter on the side for dipping. Try this Baked Italian Sub Sandwiches recipe for a heartier pairing.
- Simple Green Salad: A crisp salad with romaine, cucumber, and red onion dressed in Italian vinaigrette provides a fresh, crunchy contrast to the hearty soup. The acidity from the dressing cuts through the richness beautifully. This Beet and Orange Salad adds a lovely sweet-tart element.
- Roasted Garlic Bread: For special occasions, I make garlic bread by rubbing toasted bread with raw garlic and drizzling with olive oil. My grandchildren always request this pairing.
- Italian Sausage Pepper Casserole: When you want to turn soup night into a full Italian feast, this Italian Sausage Pepper Casserole makes an excellent side that complements the meatball soup’s flavors.
- Sautéed Green Beans: These add a slightly sweet, nutty element that balances the savory soup without competing for attention on the palate. Try these Honey Glazed Carrots and Green Beans for a colorful addition.
- Caprese Salad: During summer months when tomatoes are at their peak, this simple combination of tomatoes, mozzarella, and basil echoes the Italian flavors in the soup while feeling lighter and seasonal.
FAQs
I recommend using frozen meatballs when you’re short on time. Just add them directly to the simmering soup and cook until heated through. Betty’s solution is to brown frozen meatballs slightly in a pan first for better texture.
To prevent this issue, make sure you’re creating a proper panade by letting the breadcrumbs soak in the cream and egg mixture for the full 1-2 minutes. The best approach is handling the meat mixture gently and not overmixing.
Many home cooks find success with making the soup base and meatballs a day ahead, then combining everything and adding the pasta just before serving. Cooking the pasta fresh prevents it from getting mushy.

Meatball Soup
Ingredients
Equipment
Method
- Add ground beef and ground pork to the breadcrumb mixture. Gently combine without overmixing. Roll meat into 1-inch balls.
- Heat olive oil in soup pot or Dutch oven over medium-high heat. Brown meatballs in batches for 2-3 minutes, turning to create a golden-brown crust on all sides. Remove meatballs and set aside.
- Place diced tomatoes (with their juices) in a large bowl. Use immersion blender to blend until mostly smooth with some small chunks remaining, about 10-15 seconds. Set aside.
- Melt butter in the same soup pot over medium-low heat. Add diced onions and cook for 10 minutes, stirring occasionally, until softened. Add bell peppers and cook for 4 more minutes.
- Add minced garlic, tomato paste, hot sauce (if using), Worcestershire sauce, oregano, basil, parsley, mustard powder, and red pepper flakes. Cook for 1 minute, stirring constantly.
- Add chicken broth, beef broth, and blended tomatoes to the pot. Bring to a boil, then reduce heat to simmer. Simmer uncovered for 15 minutes.
- Bring soup to a gentle boil. Add meatballs and dry pasta. Return to a gentle boil and cook until pasta is al dente (8 minutes for ditalini, 9 minutes for small shells, or 7 minutes for orzo).
- Reduce heat to low. Stir in 1/2 cup heavy cream, then add spinach. Cook until spinach is wilted, about 1 minute. Taste and adjust salt and pepper as needed.