Creamy Italian Meatball Soup

A bowl of creamy Italian meatball soup with tender beef meatballs and wilted spinach, perfect for cozy weeknight dinners. Pin It
A bowl of creamy Italian meatball soup with tender beef meatballs and wilted spinach, perfect for cozy weeknight dinners. | bountyandbasil.com

This soul-warming soup brings together handmade beef and pork meatballs, aromatic vegetables, and small pasta swimming in a luscious tomato-cream base. The meatballs, seasoned with Parmesan, garlic, and herbs, brown beautifully before simmering to tender perfection in the flavorful broth. Heavy cream creates the signature velvety texture, while fresh baby spinach adds color and nutrients. Each spoonful delivers tender meat, al dente pasta, and vegetables in a satisfyingly rich broth. Perfect for chilly evenings, this Italian classic serves six generously and tastes even better the next day.

The first time I made this soup was during a snowstorm when I needed something that could simmer slowly while I watched the flakes pile up outside. My kitchen filled with the smell of browning meatballs and garlic, and I knew this was going to be a keeper before I even took the first spoonful.

I served this to my sister on a random Tuesday and she texted me the next morning asking for the recipe. Thats when I knew it wasnt just me being snowbound and dramatic about soup.

Ingredients

  • 500 g ground beef or beef pork mix: The fat content keeps meatballs tender, and I learned the hard way that super lean meat makes them tough
  • 1/2 cup breadcrumbs: These are the binder that keeps everything together without making the meatballs dense
  • 1/4 cup grated Parmesan cheese: Adds a salty depth that makes the meatballs taste like theyve been simmering for hours
  • 1 large egg: The essential glue that holds the meatballs together through all that stirring and simmering
  • 2 cloves garlic minced: Fresh garlic in the meatballs means little flavor pockets throughout
  • 2 tbsp chopped fresh parsley: Brightens up the rich meat and makes everything taste fresher
  • 1 tsp dried oregano: The classic Italian herb that makes everything taste like a proper Italian kitchen
  • 1/2 tsp salt and 1/4 tsp ground black pepper: Basic seasoning that you should not skip or the meatballs will taste bland
  • 2 tbsp olive oil: Use this for browning meatballs and starting your soup base
  • 1 medium onion diced: The foundation of flavor that sweetens as it cooks down
  • 2 carrots diced: Add natural sweetness and color that balances the tomatoes
  • 2 celery stalks diced: Essential for that classic soup base flavor profile
  • 3 cloves garlic minced: More garlic is always the right decision in soup
  • 1 tsp dried basil and 1/2 tsp dried thyme: These herbs complement each other and the oregano perfectly
  • 1/2 tsp crushed red pepper flakes optional: Just enough warmth to make things interesting without overwhelming
  • 800 g canned crushed tomatoes: The body and acidity that balances the cream
  • 1.2 L chicken or vegetable broth: The liquid base that everything else builds upon
  • 1 bay leaf: Subtle background flavor that you remove at the end
  • 150 g small pasta: Ditalini or orzo work perfectly and catch in your spoon with the meatballs
  • 200 ml heavy cream: Creates that luxurious velvety texture that makes people say wow
  • 100 g baby spinach roughly chopped: Wilts into the soup and adds color without overpowering
  • Salt and black pepper to taste: Always taste at the end because the tomatoes and Parmesan are already salty

Instructions

Mix the meatball base:
Combine the ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl, mixing just until everything holds together when you squeeze it.
Form the meatballs:
Roll the mixture into small balls about 2.5 cm across and place them on a plate or cutting board while you heat your pot.
Brown the meatballs:
Heat 1 tbsp olive oil in your large soup pot over medium heat, then add meatballs in batches, turning them until theyre browned on all sides but not cooked through, about 3 minutes per batch.
Start the soup base:
Add the remaining olive oil to the same pot and cook the onion, carrots, and celery for 5 minutes until they start to soften.
Add the aromatics:
Stir in the garlic, basil, thyme, and red pepper flakes and cook for 1 minute until fragrant.
Build the soup:
Pour in the crushed tomatoes and broth, add the bay leaf, and bring everything to a gentle simmer before returning the meatballs to the pot.
Simmer together:
Cover and let the soup cook gently for 15 minutes so the meatballs finish cooking and flavors start melding.
Cook the pasta:
Stir in the pasta and simmer uncovered for 10 minutes until the pasta is al dente and the meatballs are cooked through.
Finish with cream:
Reduce the heat to low, fish out the bay leaf, then stir in the heavy cream and spinach until the spinach wilts and everything is creamy.
Season and serve:
Taste and add salt and pepper if needed, then ladle into bowls topped with extra Parmesan and fresh herbs.
Creamy Italian meatball soup in a rustic pot, with al dente pasta, fresh basil, and crusty bread on the side. Pin It
Creamy Italian meatball soup in a rustic pot, with al dente pasta, fresh basil, and crusty bread on the side. | bountyandbasil.com

Now this soup is my default whenever someone needs feeding. Theres something about floating meatballs and creamy broth that just makes people feel taken care of.

Making Ahead Like A Pro

You can make the meatballs and soup base a day ahead, but wait to add the pasta and cream until youre ready to serve. The pasta gets mushy overnight and the cream can separate if reheated too aggressively, which I discovered after a meal prep disaster that still makes me wince.

The Pasta Dilemma

Small pasta shapes work best here because they fit on your spoon with the meatballs and broth. Ive tried larger shapes and they end up awkward to eat, plus they take up too much room in the bowl that could go toward more soup.

Serving Suggestions

This soup is filling enough to be a meal on its own, but crusty bread for dipping is never a bad idea. A simple green salad with vinaigrette cuts through the richness if you want something fresh on the side.

  • Grate extra Parmesan at the table because some people want a mountain on top
  • Have red pepper flakes available for people who like more heat
  • The soup actually tastes better the next day after the flavors have time to hang out
Hearty creamy Italian meatball soup with a rich tomato and cream broth, topped with melted Parmesan and fresh parsley. Pin It
Hearty creamy Italian meatball soup with a rich tomato and cream broth, topped with melted Parmesan and fresh parsley. | bountyandbasil.com

This is the kind of recipe that turns a random Tuesday into something special, mostly because it makes your house smell incredible and everyone ends up happy and fed.

Recipe Q&A

Absolutely. Form and brown the meatballs up to 24 hours in advance, then refrigerate. When ready to serve, complete the simmering step with the broth and vegetables. The flavors actually meld better when the meatballs have time to rest.

Small pasta varieties like ditalini, orzo, mini shells, or tubetti hold up beautifully in the broth. These tiny shapes capture the creamy sauce while maintaining their texture. Avoid larger pasta which can become mushy or overwhelm the meatballs.

Freezing works best if you omit the cream and pasta initially. Cool the soup completely, freeze in airtight containers for up to 3 months. When reheating, add fresh pasta and cream during the final minutes to prevent texture changes.

Replace heavy cream with half-and-half, evaporated milk, or even whole milk for reduced richness. Use lean ground beef or turkey for the meatballs, and increase vegetables while reducing pasta slightly. The comforting character remains intact.

Crusty Italian bread, garlic knots, or focaccia are perfect for soaking up the creamy broth. A simple green salad with vinaigrette balances the richness. For a complete meal, add roasted vegetables or a light antipasto platter.

Mix the meatball mixture just until combined—overworking makes them crumbly. The breadcrumbs and egg are essential binders, so don't reduce them. Browning before simmering helps them hold their shape. Letting the mixture rest for 15 minutes before forming also improves structure.

Creamy Italian Meatball Soup

Tender meatballs in a rich, creamy tomato broth with pasta and fresh spinach—pure comfort in a bowl.

Prep 20m
Cook 40m
Total 60m
Servings 6
Difficulty Easy

Ingredients

For the Meatballs

  • 1.1 pounds ground beef or beef and pork blend
  • 1/2 cup breadcrumbs
  • 1/4 cup grated Parmesan cheese
  • 1 large egg
  • 2 cloves garlic, minced
  • 2 tablespoons chopped fresh parsley
  • 1 teaspoon dried oregano
  • 1/2 teaspoon salt
  • 1/4 teaspoon ground black pepper

For the Soup

  • 2 tablespoons olive oil
  • 1 medium onion, diced
  • 2 carrots, diced
  • 2 celery stalks, diced
  • 3 cloves garlic, minced
  • 1 teaspoon dried basil
  • 1/2 teaspoon dried thyme
  • 1/2 teaspoon crushed red pepper flakes
  • 28 ounces canned crushed tomatoes
  • 5 cups chicken or vegetable broth
  • 1 bay leaf
  • 1 cup small pasta such as ditalini or orzo
  • 3/4 cup heavy cream
  • 3.5 ounces baby spinach, roughly chopped
  • Salt and black pepper to taste

For Serving

  • Freshly grated Parmesan cheese
  • Chopped fresh basil or parsley
  • Crusty bread

Instructions

1
Prepare the Meatballs: In a large bowl, combine ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper. Mix until just combined. Form into small meatballs about 1 inch in diameter and set aside.
2
Brown the Meatballs: Heat 1 tablespoon olive oil in a large soup pot over medium heat. Add meatballs in batches, turning to brown on all sides without cooking through. Transfer browned meatballs to a plate.
3
Sauté the Vegetables: In the same pot, add remaining 1 tablespoon olive oil. Sauté onion, carrots, and celery for 5 minutes until softened. Add garlic, basil, thyme, and red pepper flakes; cook 1 minute more.
4
Simmer the Soup: Add crushed tomatoes, broth, and bay leaf. Bring to a simmer. Return meatballs to the pot. Cover and simmer gently for 15 minutes.
5
Add Pasta: Stir in pasta and continue simmering uncovered for 10 minutes or until pasta is al dente and meatballs are cooked through.
6
Finish the Soup: Reduce heat to low. Remove bay leaf. Stir in heavy cream and baby spinach; cook for 2 to 3 minutes until spinach is wilted and soup is creamy. Season with salt and pepper as needed.
7
Serve: Ladle soup into bowls. Top with grated Parmesan and fresh herbs. Serve with crusty bread if desired.
Additional Information

Equipment Needed

  • Large soup pot
  • Mixing bowls
  • Wooden spoon
  • Knife and cutting board
  • Measuring cups and spoons

Nutrition (Per Serving)

Calories 480
Protein 25g
Carbs 36g
Fat 25g

Allergy Information

  • Contains gluten from breadcrumbs and pasta
  • Contains dairy from Parmesan and heavy cream
  • Contains eggs in meatballs
  • May contain celery
Elena Marlowe

Sharing fresh, easy recipes and practical kitchen tips for home cooks of all levels.