Creamy Italian Meatball Soup

A bowl of creamy Italian meatball soup with tender beef meatballs, ditalini pasta, and wilted spinach in a rich tomato broth, garnished with Parmesan. Save to Pinterest
A bowl of creamy Italian meatball soup with tender beef meatballs, ditalini pasta, and wilted spinach in a rich tomato broth, garnished with Parmesan. | cookingwithyvette.com

This satisfying soup combines handmade Italian-style meatballs with a velvety tomato base, loaded with carrots, celery, and spinach. The meatballs get beautifully tender as they simmer in the aromatic broth, while small pasta adds heartiness. A splash of heavy cream creates the luxurious texture that makes this dish special. Finished with fresh herbs and Parmesan, it's a complete meal in a bowl that brings warmth to any table.

The first time I made this soup was during a gray, slushy February when my apartment felt like it was never going to see spring again. I had half a package of ground beef and a craving for something that felt like a warm embrace. The way the cream swirled into the tomato broth was so pretty I actually took a picture of it, something I almost never do.

My friend Sarah came over unexpectedly while it was simmering, and she ended up staying for three bowls. She kept saying 'I don't usually like creamy soups' between spoonfuls, which I took as the highest compliment. Now every time she smells garlic and herbs sautéing, she texts me asking if I'm making 'the soup.'

Ingredients

  • 500 g ground beef: A mix of beef and pork gives the meatballs extra richness and juiciness that you'll notice immediately
  • 1/2 cup breadcrumbs: These keep the meatballs tender instead of dense, almost like little clouds floating in your soup
  • 1/4 cup grated Parmesan: Don't skip this, it adds a salty depth that makes the meatballs taste properly Italian
  • 1 large egg: The binder that holds everything together without making the mixture gummy or rubbery
  • 2 cloves garlic: Minced fresh rather than powdered, because you want those little bursts of aromatic flavor
  • 2 tbsp chopped fresh parsley: Brightens up the meatballs and adds a fresh counterpoint to all the rich, cooked flavors
  • 1 tsp dried oregano: The herb that instantly says 'Italian comfort food' in the most inviting way
  • 2 tbsp olive oil: Use this for both browning the meatballs and sautéing the vegetables to build layers of flavor
  • 1 medium onion, 2 carrots, 2 celery stalks: Your classic soup foundation, diced small so they soften quickly and disappear into every spoonful
  • 800 g canned crushed tomatoes: The backbone of the soup, providing that velvety tomato base that the cream will later turn golden
  • 1.2 L chicken or vegetable broth: The liquid that carries all the flavors together, homemade if you have it
  • 150 g small pasta: Ditalini or orzo are perfect because they're small enough to fit on a spoon with everything else
  • 200 ml heavy cream: What transforms this from a perfectly good tomato soup into something that feels like a special occasion
  • 100 g baby spinach: Added at the very end so it just wilts, bringing a pop of color and fresh greens

Instructions

Prepare the Meatballs:
Combine the ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl, mixing gently with your hands until just combined. Form into small meatballs about 2.5 cm in diameter and set them aside on a plate.
Brown the Meatballs:
Heat 1 tbsp olive oil in a large soup pot over medium heat and add the meatballs in batches, turning to brown on all sides. Transfer them to a plate once browned, knowing they don't need to be cooked through yet.
Sauté the Vegetables:
In the same pot, add the remaining 1 tbsp olive oil and sauté the onion, carrots, and celery for 5 minutes until softened and fragrant. Add the garlic, basil, thyme, and red pepper flakes and cook for 1 minute more until the garlic becomes aromatic.
Simmer the Soup:
Add the crushed tomatoes, broth, and bay leaf to the pot, bringing everything to a gentle simmer. Return the browned meatballs to the pot, cover, and let simmer gently for 15 minutes while the flavors meld together.
Add Pasta:
Stir in the pasta and continue simmering uncovered for about 10 minutes until the pasta is al dente and the meatballs are cooked through completely.
Finish the Soup:
Reduce heat to low and remove the bay leaf, then stir in the heavy cream and baby spinach. Cook for 2 to 3 minutes until the spinach wilts and the soup becomes beautifully creamy, seasoning with salt and pepper to taste.
Hearty creamy Italian meatball soup served steaming in a rustic white bowl, topped with fresh basil and alongside crusty Italian bread for dipping. Save to Pinterest
Hearty creamy Italian meatball soup served steaming in a rustic white bowl, topped with fresh basil and alongside crusty Italian bread for dipping. | cookingwithyvette.com

Last winter my sister came home from college and asked if I could make 'that soup that makes everything feel okay.' We ate it by the fireplace while she told me about her classes, and I realized food is sometimes just love in a different form.

Making It Your Own

Some days I use half-and-half instead of heavy cream when I want something lighter but still creamy. Other times I'll add diced zucchini or bell pepper in with the vegetables if my CSA box is overflowing. The soup forgives all kinds of substitutions and still comes out beautifully.

Serving Suggestions

A hunk of crusty bread is absolutely essential here, because you'll want to mop up every last drop of that creamy tomato broth. I like to grate extra Parmesan at the table so everyone can add as much as they want. A simple green salad with a bright vinaigrette cuts through the richness perfectly.

Make-Ahead Magic

This soup might be even better the next day, after all the flavors have had time to really get to know each other in the refrigerator. I've started making a double batch just to ensure there's plenty for lunch the following day.

  • Cook the pasta separately if you plan to freeze the soup, otherwise it gets mushy
  • The cream can be added when reheating to keep the texture fresh
  • This freezes beautifully for up to three months
A spoon scooping creamy Italian meatball soup from a deep bowl, revealing the savory blend of vegetables, pasta, and meatballs in a velvety broth. Save to Pinterest
A spoon scooping creamy Italian meatball soup from a deep bowl, revealing the savory blend of vegetables, pasta, and meatballs in a velvety broth. | cookingwithyvette.com

There's something about steam rising from a bowl of this soup that makes even an ordinary Tuesday feel like a occasion worth celebrating.

Recipe Questions & Answers

Yes, you can form and refrigerate the uncooked meatballs for up to 24 hours before cooking. They can also be frozen uncooked for up to 3 months—thaw overnight in the refrigerator before adding to the soup.

Small pasta shapes like ditalini, orzo, mini shells, or tubetti hold up well in soup without becoming mushy. Avoid larger shapes as they'll overpower the delicate balance of ingredients.

The soup freezes well for up to 3 months, but it's best to freeze without the pasta as it can become soft when reheated. Add freshly cooked pasta when serving. Alternatively, freeze individual portions and reheat gently on the stovetop.

Substitute half-and-half or evaporated milk for heavy cream to reduce calories while maintaining creaminess. You can also use lean ground turkey or chicken for the meatballs and increase the vegetables for extra fiber.

Crusty bread or garlic knots are perfect for soaking up the flavorful broth. A simple green salad with vinaigrette balances the richness, or serve alongside roasted vegetables for a complete, comforting meal.

Creamy Italian Meatball Soup

Tender meatballs simmer in a rich, creamy tomato broth with vegetables, pasta, and fresh herbs for ultimate comfort.

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

Ingredients

For the Meatballs

  • 1.1 pounds ground beef or beef and pork mixture
  • 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: Combine ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl. 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. Transfer browned meatballs to a plate.
3
Sauté the Vegetables: Add remaining 1 tablespoon olive oil to the pot. Sauté onion, carrots, and celery for 5 minutes until softened. Add garlic, basil, thyme, and red pepper flakes and 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 the 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 the 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 egg in meatballs
  • May contain celery
Yvette Morales

Home cook sharing easy, wholesome recipes and kitchen tips for busy food lovers.