Creamy Italian Meatball Soup

A close-up of Creamy Italian Meatball Soup in a rustic bowl, with tender meatballs and fresh basil garnish. Save
A close-up of Creamy Italian Meatball Soup in a rustic bowl, with tender meatballs and fresh basil garnish. | recipesbyleticia.com

This hearty bowl brings together handmade Italian-style meatballs, small pasta, and fresh vegetables in a luscious tomato-cream broth. The meatballs stay incredibly tender after simmering directly in the liquid, while the ditalini or orzo pasta adds satisfying substance. A splash of heavy cream at the end creates that signature velvety texture, and baby spinach wilts in for fresh color and nutrients. The entire preparation comes together in just one hour, making it ideal for weeknight dinners or meal prep batches.

The first time I made this soup was during a particularly brutal February when my apartment heater was barely holding its own against the drafty windows. I had been craving something that felt like a warm embrace but didn't require hours at the stove. This soup ended up being exactly what I needed, rich and comforting enough to make me forget about the weather outside entirely.

Last winter, my sister came over after a terrible week at work and I put a pot of this on the stove. She took one sip, closed her eyes, and told me it was exactly what she needed. Now she requests it every time she visits, saying it's the only thing that can fix a bad day.

Ingredients

  • Ground beef (500 g or beef and pork mix): The pork adds extra fat and flavor that keeps the meatballs incredibly tender, but all beef works perfectly too
  • Breadcrumbs (1/2 cup): These are the secret to keeping meatballs from becoming tough little rocks, they absorb moisture and create that perfect texture
  • Parmesan cheese (1/4 cup grated): Dont use the pre-grated stuff in the tub, fresh grated melts into the meatballs and adds that nutty richness you can't fake
  • Large egg: Acts as the binding agent that holds everything together without making the mixture dense
  • Garlic (5 cloves total): Fresh minced garlic is non-negotiable here, it builds that aromatic base that makes your whole kitchen smell incredible
  • Fresh parsley (2 tbsp chopped): I learned that adding herbs directly to the meatball mixture layers flavor throughout every single bite
  • Olive oil (2 tbsp): Use good quality olive oil since youre not cooking it at high heat, the fruitiness really comes through
  • Onion, carrots, celery: This classic mirepoix creates the foundational flavor base that makes the soup taste like it simmered all day
  • Dried basil and thyme: Dried herbs actually work better than fresh here since they'll bloom during the longer simmer time
  • Crushed tomatoes (800 g): I prefer crushed over diced for soups because they break down beautifully and create that rustic texture
  • Small pasta (1 cup): Ditalini is my go-to but orzo or even broken spaghetti work in a pinch, just avoid anything too large
  • Heavy cream (200 ml): This is what transforms it from standard tomato soup to something velvety and restaurant-worthy
  • Baby spinach (100 g): Added at the very end so it just wilts, bringing freshness and color without getting slimy

Instructions

Mix the meatball mixture:
Combine everything in a large bowl and mix with your hands just until the ingredients are evenly distributed, overworking makes tough meatballs
Form small meatballs:
Roll them into about 1-inch balls, they'll plump up slightly as they cook so keep them on the smaller side for easy spooning
Brown the meatballs in batches:
Heat olive oil in your soup pot over medium heat and cook them just until golden on all sides, they don't need to cook through yet
Sauté the vegetable base:
Add the onion, carrots, and celery to the same pot, cooking for about 5 minutes until they soften and start to smell sweet
Add the aromatics:
Stir in the garlic, basil, thyme, and red pepper flakes and cook for just one minute until fragrant, careful not to burn the garlic
Build the soup base:
Pour in the crushed tomatoes and broth, drop in the bay leaf, and return the browned meatballs to the pot
Simmer together:
Bring everything to a gentle bubble then cover and let it simmer for 15 minutes so the flavors meld and meatballs finish cooking
Cook the pasta:
Stir in the pasta and continue simmering uncovered for about 10 minutes until tender, stirring occasionally so it doesn't stick
Add the cream and spinach:
Reduce the heat to low, remove the bay leaf, and stir in the heavy cream and spinach, cooking just 2-3 minutes until the spinach wilts
Season and serve:
Taste and add salt and pepper as needed, then ladle into bowls topped with extra Parmesan and fresh herbs
Creamy Italian Meatball Soup steams warmly beside crusty bread and Parmesan cheese on a wooden table. Save
Creamy Italian Meatball Soup steams warmly beside crusty bread and Parmesan cheese on a wooden table. | recipesbyleticia.com

This recipe has become my go-to when friends need comfort food but I don't have the energy for something complicated. Something about tender meatballs floating in that creamy tomato broth just makes people feel taken care of.

Making It Ahead

I've learned to cook the pasta separately and add it just before serving if I'm making this ahead for a party. The pasta soaks up so much broth overnight that leftovers can become more like stew than soup. Store the soup base and meatballs in one container and the cooked pasta in another, then combine them when reheating.

Perfecting The Cream

Temper the cream before adding it by whisking a small amount of the hot soup into it first, then pour it back into the pot. This prevents the cream from curdling when it hits the hot liquid. I learned this the hard way after making a soup that tasted delicious but looked slightly grainy.

Getting Creative

Don't be afraid to play with the vegetable base depending on what's in your fridge. I've added diced zucchini in summer and swapped in kale for spinach when that's what I had on hand.

  • A splash of white wine added with the tomatoes brings brightness that cuts through the cream
  • Try stirring in a spoonful of pesto at the end for an incredible basil punch
  • A piece of parmesan rind simmered in the broth adds incredible depth, just fish it out before serving
Overhead view of Creamy Italian Meatball Soup with spinach and pasta in a creamy tomato broth. Save
Overhead view of Creamy Italian Meatball Soup with spinach and pasta in a creamy tomato broth. | recipesbyleticia.com

There's something so satisfying about ladling this soup into bowls and watching people's faces light up. It's simple food that feels special, exactly what comfort cooking should be.

Common Questions

Absolutely. Form and brown the meatballs up to 24 hours in advance, then refrigerate until ready to simmer in the broth. This actually enhances flavor development.

Small shapes like ditalini, orzo, tubetti, or tiny shells hold up beautifully during simmering. Avoid larger pasta which may become mushy or overpower the delicate balance.

Cool completely and refrigerate in airtight containers for up to 4 days. The pasta will absorb more liquid, so add extra broth when reheating. Freezing works best without the pasta added.

Replace heavy cream with half-and-half, evaporated milk, or full-fat coconut milk. Use lean ground beef or turkey for the meatballs, and increase vegetables for added bulk.

Crusty bread, garlic knots, or a simple green salad complement perfectly. A light white wine like Pinot Grigio pairs wonderfully with the rich, tomato-based broth.

Simply use gluten-free breadcrumbs in the meatballs and substitute your favorite gluten-free small pasta. Double-check that all seasonings and canned tomatoes are certified gluten-free.

Creamy Italian Meatball Soup

Tender meatballs in creamy tomato broth with pasta and fresh vegetables

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

Ingredients

For the Meatballs

  • 1.1 pounds ground beef (or beef and pork mix)
  • 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 (ditalini or orzo)
  • 3/4 cup heavy cream
  • 3.5 ounces baby spinach, chopped
  • Salt and black pepper to taste

For Serving

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

Instructions

1
Prepare Meatball Mixture: Combine ground meat, breadcrumbs, Parmesan, egg, minced garlic, parsley, oregano, salt, and pepper in a large bowl. Mix until just incorporated, being careful not to overwork the meat.
2
Shape Meatballs: Form the mixture into small meatballs approximately 1 inch in diameter. Place on a plate or baking sheet until ready to cook.
3
Brown Meatballs: Heat 1 tablespoon olive oil in a large soup pot over medium heat. Add meatballs in batches, turning to brown on all sides. They need not be cooked through at this stage. Transfer browned meatballs to a clean plate.
4
Sauté Aromatic Vegetables: Add remaining 1 tablespoon olive oil to the same pot. Cook onion, carrots, and celery for 5 minutes until softened. Add garlic, basil, thyme, and red pepper flakes; cook 1 minute more until fragrant.
5
Simmer Soup Base: Pour in crushed tomatoes, broth, and add bay leaf. Bring to a gentle simmer. Return browned meatballs to the pot. Cover and simmer for 15 minutes.
6
Cook Pasta: Stir in pasta and continue simmering uncovered for 10 minutes or until pasta reaches al dente texture and meatballs are fully cooked through.
7
Finish with Cream and Spinach: Reduce heat to low. Remove and discard bay leaf. Stir in heavy cream and spinach; cook 2 to 3 minutes until spinach wilts and soup achieves a creamy consistency. Season with salt and pepper as needed.
8
Serve: Ladle soup into individual bowls. Garnish with grated Parmesan and fresh herbs. Accompany 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 cheese and heavy cream. Contains eggs in meatballs. May contain celery.
Leticia Fernández

Sharing easy, flavorful meals and practical cooking tips for home cooks and food lovers.