Italian-Style Meatball Soup

Featured in: Homemade Soup Recipes for Every Season

This hearty Italian-style soup combines juicy meatballs with al dente rotini pasta in a flavorful base of crushed tomatoes and chicken broth. The addition of caramelized onions, garlic, and Italian seasonings creates deep flavor layers, while baby spinach and heavy cream add a silky finish. Topped with shaved Parmesan and fresh parsley, this one-pot meal delivers comfort in every spoonful, with the perfect balance of protein, vegetables, and pasta.

A woman in a kitchen smiling.
Updated on Mon, 14 Apr 2025 20:16:49 GMT
A bowl of soup with meatballs and vegetables. Pin it
A bowl of soup with meatballs and vegetables. | quickietreats.com

This hearty Italian meatball soup has been my family's go-to comfort meal on chilly evenings. The combination of tender meatballs, al dente pasta, and rich tomato broth creates a satisfying one-pot wonder that never fails to bring everyone to the table eager for seconds.

I first created this recipe during a particularly busy week when I needed something that would satisfy my picky toddler while still feeling special enough for the adults. The empty bowls and requests for seconds told me everything I needed to know. Now it's in our regular rotation, especially when friends come over for casual dinners.

Ingredients

  • Ground beef: for homemade meatballs gives the soup its hearty foundation, look for 80/20 lean to fat ratio for best flavor
  • Olive oil: adds richness to the base, choose good quality extra virgin for best results
  • Yellow onion: provides essential sweetness when caramelized, use a medium-sized onion for balanced flavor
  • Garlic cloves: fresh minced garlic is non-negotiable here for authentic Italian flavor
  • Italian seasoning: a time-saving blend that adds complexity without measuring multiple herbs
  • Tomato paste: concentrate delivers deep umami flavor and thickens the broth nicely
  • Chicken broth: forms the savory base, low sodium allows better seasoning control
  • Crushed tomatoes: creates the signature rustic texture and tangy sweetness
  • Rotini pasta: perfect shape that holds up well in soup and captures sauce in its spirals
  • Baby spinach: adds color, nutrition, and mild flavor that even veggie skeptics enjoy
  • Heavy cream: mellows acidity and creates silky texture, a small amount makes big impact
  • Parmesan cheese: for garnish, use freshly shaved for best flavor and texture

Step-by-Step Instructions

Prepare Meatballs:
Either make homemade Italian meatballs using your favorite recipe or take a shortcut with good-quality frozen meatballs. If using frozen, ensure they're fully thawed or cooked according to package directions before adding to the soup. Homemade meatballs should be fully cooked and set aside.
Develop The Flavor Base:
Heat olive oil in a large Dutch oven or soup pot over medium heat until shimmering. Add diced onion with a generous pinch of kosher salt and freshly cracked pepper. Cook for a full 6–8 minutes, stirring occasionally, until onions turn golden brown and begin to caramelize. This patience-building step creates the foundation of flavor for the entire soup.
Build The Aromatics:
Add minced garlic, Italian seasoning, and tomato paste to the caramelized onions along with another pinch of salt and pepper. Cook while stirring constantly for exactly one minute until everything becomes fragrant and the tomato paste darkens slightly. This brief cooking time activates the herbs and transforms the raw tomato flavor into something much more complex.
Deglaze The Pot:
Pour a small amount of broth into the pot and use a wooden spoon to scrape up all the browned bits from the bottom. These caramelized pieces contain concentrated flavor that will enhance the entire soup. Continue scraping until the bottom of the pot is clean and all those flavor bombs are incorporated into your liquid.
Combine Main Components:
Add the remaining broth, crushed tomatoes, uncooked pasta, and prepared meatballs to the pot along with more salt and pepper. Stir gently to combine everything while being careful not to break apart the meatballs. The uncooked pasta will absorb flavors as it cooks directly in the broth, making every bite more delicious.
Simmer To Perfection:
Bring everything to a gentle simmer over medium-high heat, watching carefully to prevent boiling over. Once simmering, reduce heat to low, cover the pot, and let cook for 12–15 minutes, stirring occasionally. The pasta should be cooked to al dente, with some firmness remaining, as it will continue softening in the hot broth.
Finish With Freshness:
Remove pot from heat and immediately stir in baby spinach and heavy cream. The residual heat will wilt the spinach perfectly while preserving its bright green color and nutrients. The cream adds luxurious body and balances the acidity of the tomatoes without making the soup overly rich.
Serve With Style:
Taste and adjust seasoning with additional salt and pepper as needed. Ladle hot soup into bowls and garnish generously with freshly shaved Parmesan and chopped parsley. The cheese adds salty depth, while the parsley brings brightness and color to the finished dish.
A bowl of soup with meatballs and noodles. Pin it
A bowl of soup with meatballs and noodles. | quickietreats.com

You Must Know

  • Perfect meal prep solution lasts 3–4 days in the refrigerator
  • Family-friendly comfort food that even picky eaters love
  • Complete one-pot meal with protein, vegetables, and carbs
  • Economical way to stretch premium ingredients like meat

The meatballs are truly the star of this soup. I discovered that taking the extra time to brown homemade meatballs before adding them to the soup creates another dimension of flavor that makes guests ask for my secret ingredient. There isn't one, just patience and proper technique that transforms simple ingredients into something extraordinary.

A bowl of soup with meatballs and pasta. Pin it
A bowl of soup with meatballs and pasta. | quickietreats.com

Frequently Asked Questions

→ Can I use store-bought meatballs instead of homemade?

Yes, you can use an 18-20 oz. bag of frozen meatballs that have been thawed overnight in the fridge or cooked according to package directions as an easy substitute for homemade meatballs.

→ What pasta works best in this soup?

Rotini pasta works especially well because the spirals hold the sauce nicely, but you could substitute other short pasta shapes like penne, farfalle, or small shells with similar results.

→ Can I make this soup ahead of time?

Yes, but it's best to cook the pasta separately if making ahead. Otherwise, the pasta may absorb too much liquid and become mushy. Add cooked pasta when reheating the soup, along with the cream and spinach.

→ How do I store leftovers?

Store cooled leftover soup in an airtight container in the refrigerator for up to 3-4 days. The pasta will continue to absorb liquid as it sits, so you may need to add extra broth when reheating.

→ Can I make this soup dairy-free?

Yes, you can omit the heavy cream or substitute with coconut cream or a dairy-free half-and-half. Skip the Parmesan garnish or use a dairy-free alternative.

→ What vegetables can I add to this soup?

This soup is versatile! Try adding diced carrots and celery with the onions, or stir in zucchini, bell peppers, or kale instead of spinach for variations.

Hearty Meatball Soup

Tender meatballs and pasta in a rich, creamy tomato broth with Italian seasonings and fresh spinach.

Prep Time
15 Minutes
Cook Time
35 Minutes
Total Time
50 Minutes
By: Mia

Category: Soup Varieties

Difficulty: Intermediate

Cuisine: Italian-American

Yield: 6 Servings (6 hearty bowls)

Dietary: ~

Ingredients

→ Meatballs

01 1 batch homemade meatballs (or 18-20 oz. frozen meatballs, thawed)

→ Soup Base

02 1 tablespoon olive oil
03 1 yellow onion, diced
04 6 cloves garlic, minced
05 1 tablespoon Italian seasoning
06 2 tablespoons tomato paste
07 32 oz. chicken broth
08 28 oz. can crushed tomatoes
09 8 oz. (about 2 1/2 cups) uncooked rotini pasta
10 2 cups baby spinach
11 1/2 cup heavy cream
12 Kosher salt, to taste
13 Fresh cracked pepper, to taste

→ Garnish

14 Shaved Parmesan cheese
15 Fresh parsley, chopped

Instructions

Step 01

Use homemade Italian meatballs, air fryer meatballs, or thawed frozen meatballs (18-20 oz) that have been cooked according to package directions.

Step 02

Heat olive oil in a large pot over medium heat. Add diced onion with a couple pinches of salt and pepper. Cook for 6-8 minutes until onions begin to caramelize.

Step 03

Add minced garlic, Italian seasoning, tomato paste, and additional salt and pepper. Cook for 1 minute, stirring frequently.

Step 04

Pour in a splash of broth and scrape all the flavorful bits from the bottom of the pot.

Step 05

Add remaining broth, crushed tomatoes, uncooked pasta, and cooked meatballs with additional salt and pepper.

Step 06

Bring to a simmer over medium-high heat, then reduce to low. Cover and cook for 12-15 minutes until pasta reaches al dente texture.

Step 07

Stir in baby spinach and heavy cream until spinach wilts and soup is warmed through.

Step 08

Season to taste with salt and pepper. Garnish with shaved Parmesan and freshly chopped parsley before serving.

Notes

  1. For best results, avoid overcooking the pasta to maintain its texture in the soup.
  2. The soup can be stored in an airtight container in the refrigerator for up to 3 days.

Tools You'll Need

  • Large soup pot or Dutch oven
  • Wooden spoon or heat-resistant spatula
  • Measuring cups and spoons

Allergy Information

Please check ingredients for potential allergens and consult a health professional if in doubt.
  • Contains dairy (heavy cream, Parmesan)
  • Contains gluten (pasta)

Nutrition Facts (Per Serving)

It is important to consider this information as approximate and not to use it as definitive health advice.
  • Calories: 385
  • Total Fat: 16.5 g
  • Total Carbohydrate: 42 g
  • Protein: 18 g