Go Back

Italian Meatball Soup Recipe

This Italian Meatball Soup Recipe features tender homemade meatballs simmered in a rich tomato broth with vegetables, pasta, and fresh spinach. It’s a comforting, family-friendly one-pot dinner that’s hearty, flavorful, and perfect for meal prep.
Prep Time 30 minutes
Cook Time 40 minutes
Course Main Course
Cuisine Italian
Servings 6
Calories 400 kcal

Ingredients
  

For the Meatballs:

  • 2 lb 900 g ground beef and pork blend (or all beef)
  • 1 large egg
  • cup whole milk
  • 1 cup fine breadcrumbs
  • ½ cup freshly grated Parmesan cheese
  • 2 tbsp fresh parsley chopped
  • 2 garlic cloves minced
  • tsp salt
  • ½ tsp black pepper
  • 1 tsp dried oregano
  • 1 tsp crushed fennel seeds optional
  • 2 tbsp olive oil for browning

For the Soup:

  • 2 tbsp olive oil
  • 1 medium onion diced
  • 2 carrots diced
  • 2 celery stalks diced
  • 3 garlic cloves minced
  • 28 oz 800 g crushed tomatoes
  • 6 –8 cups low-sodium chicken or beef broth
  • 2 bay leaves
  • 1 tsp dried basil
  • ½ tsp dried oregano
  • ¾ cup small pasta ditalini or small shells
  • 5 –7 oz fresh spinach or escarole chopped
  • Salt and pepper to taste
  • Fresh parsley & grated Parmesan for garnish

Instructions
 

Step 1: Prepare the Meatballs

  • In a small bowl, soak breadcrumbs in milk for 5–10 minutes.
  • In a large bowl, combine ground meat, soaked breadcrumbs, egg, Parmesan, parsley, garlic, salt, pepper, oregano, and fennel seeds.
  • Mix gently until just combined.
  • Shape into small 1-inch meatballs (about 1 tablespoon each).

Step 2: Brown the Meatballs

  • Heat 2 tbsp olive oil in a skillet over medium heat.
  • Brown meatballs on all sides for 5–7 minutes (they don’t need to cook fully). Set aside.

Step 3: Prepare the Soup Base

  • In a large pot or Dutch oven, heat 2 tbsp olive oil over medium heat.
  • Saute onion, carrots, and celery for 6–8 minutes until softened.
  • Add garlic and cook for 30 seconds until fragrant.
  • Stir in crushed tomatoes, broth, bay leaves, basil, and oregano. Bring to a gentle simmer.

Step 4: Combine & Finish

  • Add browned meatballs to the simmering soup. Cook for 10–15 minutes until fully cooked through.
  • Add pasta and cook until al dente according to package instructions.
  • Stir in spinach and cook until wilted (about 2 minutes).
  • Adjust seasoning with salt and pepper. Remove bay leaves.

Step 5: Serve

  • Ladle into bowls and garnish with fresh parsley and grated Parmesan. Serve hot with crusty bread.

Notes

  • Make Ahead: Meatballs can be shaped 24 hours in advance and refrigerated.
  • Storage: Store in an airtight container in the refrigerator for up to 4 days.
  • Freezing: Freeze without pasta for best results. Add fresh pasta when reheating.
  • Variation: Substitute ground turkey for a lighter version.
  • Low-Carb Option: Skip pasta and add zucchini noodles or cauliflower rice.
  • Tip: For extra flavour, add a squeeze of lemon juice before serving.