Go Back
+ servings
Print Recipe
5 from 7 ratings

Meatball Soup

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!


  • 1 Tablespoon olive oil


  • 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


  • 1 tablespoon butter
  • 1 yellow onion, diced
  • ½ cup bell pepper, diced
  • 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


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

For Serving

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


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.)


  • 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.
  • Nutritional facts don't include the Ricotta/Parmesan for serving


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