Print

Meatball Soup with Pasta, Spinach, and Cream Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

4 from 78 reviews

This hearty and comforting Meatball Soup combines tender Italian meatballs, savory tomato broth, and perfectly cooked rotini pasta, enriched with baby spinach and finished with a touch of cream. It’s a satisfying one-pot meal that’s quick to prepare, ideal for busy weeknights or cozy family dinners.

Ingredients

Meatballs

  • 1 recipe of homemade meatballs or 18-20 oz. bag of frozen meatballs, thawed

Soup Base

  • 1 tablespoon olive oil
  • 1 yellow onion, diced
  • 6 cloves garlic, minced
  • 1 tablespoon Italian seasoning
  • 2 tablespoons tomato paste
  • 32 oz. chicken broth
  • 28 oz. can crushed tomatoes

Pasta and Greens

  • 8 oz. (about 2 1/2 cups) uncooked rotini pasta
  • 2 cups baby spinach

Finishing Touches

  • 1/2 cup heavy cream
  • Kosher salt, to taste
  • Fresh cracked pepper, to taste
  • Shaved Parmesan, for garnish
  • Freshly chopped parsley, for garnish

Instructions

  1. Prep Meatballs: Use your favorite homemade Italian meatballs recipe, air fryer meatballs, or thaw and prepare an 18-20 oz. bag of frozen meatballs according to package instructions.
  2. Sauté Onions: Heat 1 tablespoon olive oil in a large pot over medium heat. Add the diced yellow onion along with generous pinches of kosher salt and fresh cracked pepper. Cook, stirring occasionally, for 6-8 minutes until the onions soften and start to caramelize, developing a rich, sweet flavor.
  3. Add Aromatics: Stir in the minced garlic, Italian seasoning, and tomato paste, seasoning with salt and pepper. Cook while stirring frequently for about 1 minute to release the garlic aromas and blend the tomato paste evenly into the onions.
  4. Deglaze the Pot: Pour in a few splashes of chicken broth to deglaze the pot, scraping up any browned bits stuck to the bottom to incorporate their deep flavor into the base of the soup.
  5. Add Remaining Ingredients: Add the remaining chicken broth, crushed tomatoes, uncooked rotini pasta, and prepared meatballs to the pot. Season again with salt and pepper, then stir gently to combine everything evenly.
  6. Simmer: Bring the soup to a simmer over medium-high heat. Once simmering, reduce heat to low, cover the pot, and cook for 12-15 minutes until the pasta is al dente and the meatballs are heated through.
  7. Finish Soup: Stir in baby spinach and heavy cream. Continue to cook gently until the spinach has wilted and the soup is warmed through, about 2-3 minutes.
  8. Season and Serve: Taste the soup and adjust seasoning with additional salt and pepper as needed. Ladle into bowls and garnish with shaved Parmesan cheese and freshly chopped parsley. Serve hot and enjoy!
  9. Share the Love: If you enjoyed this recipe, please consider leaving a 5-star rating and a review to spread the joy!

Notes

  • For a lighter version, substitute heavy cream with half-and-half or omit it entirely.
  • Use gluten-free pasta if you need a gluten-free meal.
  • Frozen meatballs can be cooked in the air fryer or oven before adding to the soup for best texture.
  • Feel free to swap baby spinach with kale or Swiss chard for variation.
  • Leftovers store well in the refrigerator for up to 3 days and can be reheated gently on the stovetop.