Creamy Italian Meatball Soup

Creamy Italian meatball soup featuring tender beef meatballs floating in rich tomato broth with pasta and fresh spinach Pin to board
Creamy Italian meatball soup featuring tender beef meatballs floating in rich tomato broth with pasta and fresh spinach | yumsera.com

This hearty soup brings together tender homemade Italian meatballs, a velvety tomato-cream broth, and perfectly cooked pasta in one satisfying bowl. The meatballs, seasoned with garlic, parsley, and Parmesan, simmer directly in the soup, infusing every spoonful with deep savory flavor.

What makes this special is the luxurious finish—heavy cream swirled into the tomato base creates a silky texture, while fresh spinach adds vibrant color and nutrients. Ready in about an hour, it's an ideal choice for meal prep, freezing beautifully for those busy weeknights when you need something nourishing and delicious.

The first snowfall had just started when I decided to make this soup, something about the way the frost was creeping up the windows made me crave something deeply comforting. My grandmother would always make meatballs on Sunday afternoons, the smell of garlic and herbs filling every corner of her tiny kitchen. This soup is my way of recreating that warmth, but turning it into a meal that feels like a hug on the coldest days.

Last winter my friend came over shivering from her commute, and I literally watched her shoulders drop three inches as she took that first steaming spoonful. She asked if I'd been cooking all day, and I just smiled because that's the kind of magic this soup brings to a Tuesday evening.

Ingredients

  • 500 g ground beef or beef-pork mix: The pork adds extra fat and flavor, but all beef works beautifully too
  • 1/2 cup breadcrumbs: These keep the meatballs tender and light, never dense or rubbery
  • 1/4 cup grated Parmesan: Dont skip this, it adds that salty umami that makes Italian meatballs sing
  • 1 large egg: The binder that holds everything together without making the meatballs tough
  • 2 cloves garlic, minced: Fresh garlic beats garlic powder every single time here
  • 2 tbsp chopped fresh parsley: Bright, fresh contrast to the rich soup
  • 1 tsp dried oregano: Dried herbs actually work better than fresh in the meatballs themselves
  • 1/2 tsp salt and 1/4 tsp black pepper: Keep it simple, let the soup do the heavy seasoning lifting
  • 2 tbsp olive oil: Use good oil, it builds the foundation flavor
  • 1 medium onion, 2 carrots, 2 celery stalks: The holy trinity, dice them small so they disappear into the soup
  • 3 cloves garlic, minced: More garlic because we're not monsters
  • 1 tsp dried basil and 1/2 tsp dried thyme: Classic Italian herbs that taste like comfort itself
  • 1/2 tsp crushed red pepper flakes: Optional, but that tiny kick makes everything better
  • 800 g canned crushed tomatoes: Good quality tomatoes matter, they're half the flavor
  • 1.2 L chicken or vegetable broth: Use what you have, both work beautifully
  • 1 bay leaf: The secret weapon for depth of flavor
  • 150 g small pasta: Ditalini or orzo catch in your spoon, tiny pasta perfection
  • 200 ml heavy cream: This is what transforms tomato soup into something absolutely luxurious
  • 100 g baby spinach: Wilts beautifully and adds nutrition without changing the flavor profile
  • Freshly grated Parmesan and herbs for serving: The finishing touches that make it feel restaurant worthy

Instructions

Make the meatballs:
Combine the ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt and pepper in a large bowl. Mix gently with your hands just until combined, overworking makes them tough. Form into small meatballs about one inch in diameter.
Brown the meatballs:
Heat one tablespoon olive oil in your large soup pot over medium heat. Add meatballs in batches, turning to brown on all sides. They don't need to cook through, just get some color on them.
Cook the vegetables:
In the same pot, add the remaining tablespoon of olive oil. Sauté onion, carrots and celery for five minutes until softened. Add garlic, basil, thyme and red pepper flakes, cook one minute more until fragrant.
Start the soup:
Pour in the crushed tomatoes, broth and bay leaf. Bring to a gentle simmer. Return those browned meatballs to the pot. Cover and let it simmer for fifteen minutes.
Add the pasta:
Stir in the small pasta and continue simmering uncovered for about ten minutes. You want the pasta al dente and the meatballs cooked through.
Finish with cream:
Reduce heat to low and fish out that bay leaf. Stir in the heavy cream and chopped spinach. Cook for two to three minutes until the spinach wilts and everything gets creamy and gorgeous.
Serve it up:
Ladle into warm bowls and shower with fresh Parmesan and herbs. Put that crusty bread on the table and watch everyone's eyes light up.
Hearty bowl of creamy Italian meatball soup topped with grated Parmesan and crusty bread for cozy dinner Pin to board
Hearty bowl of creamy Italian meatball soup topped with grated Parmesan and crusty bread for cozy dinner | yumsera.com

This soup became my go-to sick day meal after my neighbor brought it over when I had the flu three years ago. Now it's the first thing I make when anyone in my house feels under the weather, like a magic potion in a bowl.

Making It Lighter

Some days you want all the creamy richness, and other days you need something a bit lighter. I've used half-and-half instead of heavy cream and it still gives that luxurious texture without quite so much indulgence.

Playing with Proteins

Ground turkey or chicken make excellent lighter meatballs, just don't skip the Parmesan because that's where all the flavor lives. I've even made this with vegetarian meatballs when my sister visited, and honestly, nobody missed the meat.

Get Ahead Game Plan

The soup base freezes beautifully, so I often double the recipe and stash half in the freezer for those nights when cooking feels impossible. Just add fresh pasta, cream and spinach when you reheat it.

  • Cook pasta separately if freezing, it gets mushy in the freezer
  • Let the soup cool completely before freezing to prevent ice crystals
  • Thaw overnight in the fridge, then gently reheat on the stove
Golden-brown meatballs simmered in creamy tomato vegetable broth with ditalini pasta and wilted spinach leaves Pin to board
Golden-brown meatballs simmered in creamy tomato vegetable broth with ditalini pasta and wilted spinach leaves | yumsera.com

There's something about this soup that turns an ordinary Tuesday into something special. Maybe it's the way the steam rises up, or how a bowl of it can fix just about any kind of day.

Recipe FAQs

Absolutely. You can prepare and shape the meatballs up to 24 hours in advance, storing them covered in the refrigerator. Alternatively, freeze uncooked meatballs on a baking sheet, then transfer to a freezer bag for up to 3 months.

Small pasta shapes like ditalini, orzo, small shells, or tubetti are ideal because they spoon up easily with the meatballs and broth. Avoid larger shapes as they can overwhelm the soup's delicate balance.

Yes, substitute heavy cream with half-and-half, evaporated milk, or even whole milk for a lighter version. You can also use lean ground turkey or chicken instead of beef, though the flavor profile will be slightly different.

Stored in an airtight container in the refrigerator, it will keep for 3-4 days. The pasta may absorb some liquid as it sits—simply add a splash of broth when reheating. It also freezes well for up to 3 months.

While you can add raw meatballs directly to the broth, browning them first creates a richer, deeper flavor base and helps them hold their shape better during simmering. It's worth the extra 10 minutes.

The classic mirepoix trio works beautifully, but you can also add diced zucchini, bell peppers, or green beans during the simmering stage. Kale or Swiss chard can replace spinach if preferred.

Creamy Italian Meatball Soup

Tender meatballs simmered in rich tomato cream broth with vegetables and pasta

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

Ingredients

For the Meatballs

  • 1.1 pounds ground beef
  • 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
  • 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 same pot. 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 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
Sera Whitman

Sera shares easy recipes and practical cooking tips for family-friendly meals everyone will love.