This Meatball Soup recipe has a savory tomato broth with Italian seasonings, pasta noodles, spinach, and bell peppers. Top each serving bowl with a dollop of ricotta cheese and some Parmesan and you have a restaurant quality meal that your family will love!

Be sure to serve this with a side of No Knead Bread, and try my Chicken Taco Soup recipe next!

A blue dutch oven filled with Meatball Soup with meatballs, pasta, spinach, and parsley.

Meatball Soup

I know that the ingredient list is a little bit long here, but this recipe has the best combination of flavors. My family (picky 5-year old included), loves this recipe. Adding a dollop of Ricotta cheese prior to serving really takes it to the next level. 

PRO TIP: If you have the rind from a block of Parmesan or Romano cheese, add it to the soup while it simmers for next level flavor!

What Makes It Different

The meatballs start out with a panade, which is a starch (breadcrumbs) and a liquid (heavy cream) combined together to form a paste which is gently worked into the meat to keep it extra juicy and flavorful during the cooking process. 

The broth is a combination of chicken broth, beef broth, and blended tomatoes with a perfect seasoning blend. Onions are caramelized slightly in the beginning so that their natural sugars can offset the acidity from the tomatoes.

Diced peppers and spinach add some veggies to the mix and the pasta is can be cooked right in the soup or on the side.

How to Make It

See recipe card below this post for ingredient quantities and full instructions.

Combine meatball ingredients and roll into 1-inch meatballs. Sauté in olive oil in batches for 2-3 minutes. Remove and set aside.

Melt butter in the same pot and add onions. Let them cook slowly over medium-low heat for 10 minutes to caramelize them slightly. Add the bell peppers and cook for 4 minutes.

Browned meatballs next to a pot of sautéed vegetables.

Add the garlic, tomato paste, hot sauce, Worcestershire sauce, and seasonings. Cook for 1 minute. Add the chicken/beef broth and blended tomatoes. Bring to a boil, reduce to a simmer. Simmer uncovered for 15 minutes, or longer to further concentrate the flavor and thicken the soup. Stir occasionally.

Vegetables in tomato paste with tomato broth being added and a bay leaf.

Add the meatballs and pasta and bring to a gentle boil. Cook pasta to al dente. Stir in the heavy cream and add the spinach. Add to serving bowls and serve with Ricotta and Parmesan cheese.

Adding pasta, spinach, and meatballs to Meatball Soup.

Pro Tips

  • Frozen Meatballs can be used instead of making your own. 
  • Add the rind of a block of Parmesan or Romano cheese for added flavor while the soup simmers.
  • 28 oz. crushed tomatoes can be used instead of diced.
  • If you plan on having leftovers, you may want to boil the noodles separately and add them directly to serving bowls as the noodles will continue to absorb broth during storage.
  • The hot sauce doesn’t make the soup hot and you can’t taste the mustard powder or Worcestershire sauce. These are all flavor enhancers in this soup. I use Frank’s Hot Sauce.
  • All chicken broth can be used instead of a combination of chicken and beef if needed or preferred.
  • Milk can be used instead of heavy cream for the meatballs if preferred.
  • 📘 Find this recipe on page 25 of my 2nd cookbook, Let’s Eat!

Storage

  • Store in an airtight container and refrigerate for up to 3 days or freeze for up to 3 months.
  • If freezing: I recommend that you boil the pasta separately and add it directly to serving bowls. Freeze the soup without the pasta so that it doesn’t absorb all of the broth and/or get mushy. Boil fresh pasta prior to serving. 

A white bowl with meatball soup topped with ricotta cheese with a spoon on the side.

Tools For This Recipe

(Amazon affiliate links)- Check out all of my kitchen essentials here.

  • 4.5 quart Dutch oven– A great size for this (and most) soup recipes.
  • Box Cheese Grater– Shredding from a block tastes and melts much better than packaged cheese.
  • Spice Rack– This is the one I have, it’s a snap to measure out your seasonings quickly and easily. (Big time saver.)
  • Measuring Spoons I have these magnetic ones which stay nice and organized in my utensil drawer.
  • Pinch Bowls– for measuring out seasonings ahead of time.
  • 16 oz. storage containers – I use these to store/freeze my soups. They have 8 oz. sizes as well. They’re stackable, leak proof, and dishwasher/microwave safe.

Try These Next

Get My Free E-Book! 

Tried This Recipe?

Leave a review, I love hearing your feedback! ⭐⭐⭐⭐⭐

A wooden spoon scooping up Meatball soup with meatballs and noodles in a tomato based broth.

Meatball Soup

5 from 73 ratings
This Meatball Soup Recipe is has a flavorful tomato-based broth with Italian seasonings, pasta noodles, spinach, and bell peppers. Your family will love it with a dollop of Ricotta and some parmesan cheese!

Ingredients

  • 1 Tablespoon olive oil

Meatballs

  • 1 egg, beaten
  • ½ cup heavy cream, can sub milk
  • 1/2 cup Italian breadcrumbs
  • ¼ cup Parmesan cheese, finely grated into a powder
  • 3 cloves garlic, finely diced
  • 1 teaspoon salt
  • ½ teaspoon pepper
  • ½ lb. ground beef, 80% lean
  • ½ lb. ground pork

Soup

  • 1 tablespoon butter
  • 1 yellow onion, diced
  • ½ cup bell peppers, diced. (Red, green, or both)
  • 3 cloves garlic, minced
  • 2 tablespoons tomato paste
  • 3 cups chicken broth
  • 1 ½ cups beef broth, can sub chicken broth
  • 2 (14.5 oz.) cans diced tomatoes, undrained
  • 1 teaspoon hot sauce, optional
  • 1 teaspoon Worcestershire sauce
  • ½ cup heavy cream
  • 2 cups spinach
  • 1 cup dry pasta, I used cavatappi

Seasonings

  • 1 teaspoon EACH: dried oregano, basil, parsley, mustard powder
  • 1 pinch red pepper flakes
  • Salt/Pepper, to taste

For Serving

  • 8 oz. Ricotta Cheese
  • ½ cup Parmesan Cheese
  • Red Pepper Flakes

Instructions

For the Meatballs

  • Combine the whisked egg and heavy cream in a large bowl. Add the breadcrumbs and stir for 1-2 minutes to form a paste. This is called a “panade” and will make the meatballs super flavorful and tender. Add Parmesan cheese, garlic, salt, and pepper and stir to combine. Add the ground beef and ground pork and gently combine, don’t overwork the meat, we want tender meatballs.
  • Roll the meat into 1-inch balls.
  • Heat the olive oil in a 4 ½ quart soup pot or Dutch oven over medium-high heat.
  • Brown the meatballs in batches for 2-3 minutes, add a splash of olive oil throughout cooking and decrease heat slightly as needed. The inside of the meatballs will finish cooking in the soup.
  • Remove the meatballs and set aside.

For the Soup

  • Place the diced tomatoes in a large bowl and use an immersion blender to blend it to your desired texture, chunks of tomato can be left if preferred. (Alternatively, you can also use a blender.) Set aside.
  • Melt the butter in the same soup pot over medium-low heat. Add the diced onions and cook for 10 minutes, a little longer than normal as this will release some of their sugar which counteracts the acidity of the tomatoes. Stir every few minutes.
  • Add the peppers and cook for 4 minutes. Add the garlic, tomato paste, hot sauce, Worcestershire sauce, and seasonings. Cook for 1 minute.
  • Add in the chicken broth, beef broth, and tomatoes.
  • Bring to a boil, then reduce to a simmer. Let it simmer uncovered for 15 minutes. You can also simmer it longer to contrate the flavor and thicken it more.
  • Stir the soup and bring the soup to a gentle boil. Add the meatballs and the pasta and return it to a gentle boil. Cook until pasta is cooked through, refer to package for cooking time. It may take a little longer since we’re boiling gently. Test-taste a noodle before serving.
  • Reduce heat to low and stir in heavy cream, then add the spinach and cook until wilted, about 1 minute.
  • Transfer to serving bowls and top with ricotta cheese, Parmesan, and red pepper flakes. (You can warm the ricotta in the microwave first if preferred.)

Notes

  • Since the onions take a little while to caramelize, that’s a good time to measure out the seasonings and additional ingredients for the soup.
  • Frozen Meatballs can be used instead of making your own.
  • Add the rind of a block of Parmesan or Romano cheese for added flavor while the soup simmers.
  • 28 oz. crushed tomatoes can be used instead of diced.
  • If you plan on having leftovers: Consider boiling the noodles separately and adding them directly to serving bowls as the noodles will continue to absorb broth during storage.
  • This makes approximately 45 1-inch meatballs
  • The hot sauce doesn’t make the soup hot and you can’t taste the mustard powder or Worcestershire sauce. These are all flavor enhancers in this soup. I use Frank's Hot Sauce.
  • 📘 Find this recipe on page 25 of my 2nd cookbook, Let's Eat!

Nutritional Info is an estimate and is per cup. There are approximately 13 cups in this recipe. It doesn't include the Ricotta/Parmesan for serving

Nutrition

Calories: 222kcal, Carbohydrates: 12g, Protein: 11g, Fat: 15g, Saturated Fat: 7g, Polyunsaturated Fat: 1g, Monounsaturated Fat: 5g, Trans Fat: 1g, Cholesterol: 65mg, Sodium: 741mg, Potassium: 414mg, Fiber: 2g, Sugar: 3g, Vitamin A: 1071IU, Vitamin C: 21mg, Calcium: 90mg, Iron: 2mg
Did you try this recipe?Mention @TheCozyCook on Instagram or tag #thecozycook!