Go Back
+ servings

Meatball Soup

Warm up dinner tonight with a pot of homemade meatball soup, filled with tender meatballs, a rich tomato broth, and plenty of cozy Italian flavor. It is easy, comforting, and perfect for busy family nights.
Course Dinner
Cuisine Italian
Keyword easy meatball soup, italian meatball soup, Italian meatball soup recipe, Meatball Soup, meatball soup recipe
Prep Time 25 minutes
Cook Time 40 minutes
Total Time 1 hour 5 minutes
Servings 8 people
Calories 297kcal

Equipment

Ingredients

For the Meatballs

  • 1 lb. ground beef (or half beef, half Italian sausage)
  • cup Italian breadcrumbs
  • ¼ cup grated Parmesan cheese
  • 1 large egg
  • 2 tablespoons milk
  • 2 cloves garlic, minced (about 2 teaspoons)
  • 1 tablespoon chopped fresh parsley (or 1 teaspoon dried)
  • ½ teaspoon dried oregano
  • ½ teaspoon kosher salt
  • ¼ teaspoon black pepper

For the Soup

  • 1 tablespoon olive oil
  • 1 small onion, diced (about 1 cup)
  • 2 medium carrots, peeled and diced
  • 1 celery stalk, diced
  • 3 cloves garlic, minced (about 1 tablespoon)
  • 1 teaspoon dried basil
  • 1 teaspoon dried oregano
  • ½ teaspoon dried thyme
  • 1 (28 ounce) can crushed tomatoes
  • 6 cups low-sodium chicken broth (or beef broth for a richer flavor)
  • ½ cup uncooked ditalini or orzo pasta (optional)
  • 2 cups chopped fresh spinach (or kale)
  • 1 tablespoon fresh lemon juice
  • Additional grated Parmesan, for serving
  • Kosher salt and ground black pepper, to taste

Instructions

Make the Meatballs

  • In a medium bowl, gently combine the beef, breadcrumbs, Parmesan, egg, milk, garlic, parsley, oregano, salt, and pepper.
    Meatball mixture in a bowl.
  • Roll the mixture into small meatballs, about 1 inch in diameter. You should get roughly 40 meatballs.
    Rolling homemade meatballs.

Brown the Meatballs

  • Heat the olive oil in a large Dutch oven over medium heat. Working in batches if needed, brown the meatballs on all sides. They do not need to cook through; they’ll finish in the soup. Transfer the browned meatballs to a plate.
    Browning homemade meatballs in a Dutch oven.

Build the Soup Base

  • To the drippings in the pot, add the onion, carrots, and celery. Cook until slightly softened, about 5 minutes. Stir in the garlic, basil, oregano, and thyme; cook for 30 seconds.
    Sauteing the aromatics for a pot of meatball soup.

Add the Liquids

  • Pour in the crushed tomatoes and broth. Stir well, scraping up any browned bits from the bottom of the pot.
    Stirring the tomato broth in a pot of soup.

Simmer

  • Return the meatballs to the pot. Bring to a boil, then reduce the heat to low. Cover and simmer for 20 minutes.
    Adding the meatballs back to a pot of soup.

Add Pasta (if using)

  • Stir in the ditalini or orzo and continue cooking uncovered until the pasta is tender, about 10 minutes.
    Cooking the pasta in meatball soup.

Add Greens

  • Stir in the spinach (or kale) and cook just until wilted, 1 to 2 minutes. Taste and adjust the seasoning with salt, pepper, and a squeeze of lemon juice.
    Horizontal overhead shot of adding the spinach to a pot of meatball soup.

Serve

  • Ladle into bowls and top with Parmesan cheese.
    Horizontal overhead shot of two bowls of Italian style meatball soup.

Video

Notes

  • Meatball size: Roll meatballs about 1 inch in diameter for soup. Smaller meatballs cook faster and are easier to eat in spoonfuls.
  • Don't overmix: Gently combine meatball ingredients just until mixed. Overworking makes them dense.
  • Browning optional: Browning adds flavor and structure, but meatballs can be added directly to simmering broth if short on time.
  • Simmer, don't boil: A gentle simmer keeps meatballs tender. Boiling can cause them to break apart.
  • Greens timing: Add spinach or kale in the last 1-2 minutes so it wilts but stays vibrant.
  • Pasta note: If adding pasta, cook it separately or add uncooked pasta to the pot and extend the simmer time. Pasta will absorb liquid as it sits.
  • Storage: Refrigerate up to 4 days. Freeze (without pasta) for up to 3 months.
  • Reheating: Warm gently on the stovetop. Add a splash of broth if the soup has thickened.
  • Shortcut option: Use frozen fully-cooked meatballs instead of homemade. Add frozen and simmer until heated through.
  • Serving suggestion: Top with freshly grated parmesan and serve with crusty bread for dipping.

Nutrition

Serving: 1/8 of the soup | Calories: 297kcal | Carbohydrates: 25g | Protein: 20g | Fat: 14g | Saturated Fat: 5g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 6g | Trans Fat: 1g | Cholesterol: 65mg | Sodium: 521mg | Potassium: 803mg | Fiber: 4g | Sugar: 7g | Vitamin A: 3614IU | Vitamin C: 15mg | Calcium: 127mg | Iron: 4mg