Creamy Italian Meatball Soup (Printable Version)

Tender meatballs in creamy tomato broth with pasta and fresh vegetables

# What You'll Need:

→ For the Meatballs

01 - 1.1 pounds ground beef (or beef and pork mix)
02 - 1/2 cup breadcrumbs
03 - 1/4 cup grated Parmesan cheese
04 - 1 large egg
05 - 2 cloves garlic, minced
06 - 2 tablespoons chopped fresh parsley
07 - 1 teaspoon dried oregano
08 - 1/2 teaspoon salt
09 - 1/4 teaspoon ground black pepper

→ For the Soup

10 - 2 tablespoons olive oil
11 - 1 medium onion, diced
12 - 2 carrots, diced
13 - 2 celery stalks, diced
14 - 3 cloves garlic, minced
15 - 1 teaspoon dried basil
16 - 1/2 teaspoon dried thyme
17 - 1/2 teaspoon crushed red pepper flakes
18 - 28 ounces canned crushed tomatoes
19 - 5 cups chicken or vegetable broth
20 - 1 bay leaf
21 - 1 cup small pasta (ditalini or orzo)
22 - 3/4 cup heavy cream
23 - 3.5 ounces baby spinach, chopped
24 - Salt and black pepper to taste

→ For Serving

25 - Freshly grated Parmesan cheese
26 - Chopped fresh basil or parsley
27 - Crusty bread

# Directions:

01 - 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.
02 - Form the mixture into small meatballs approximately 1 inch in diameter. Place on a plate or baking sheet until ready to cook.
03 - 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.
04 - 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.
05 - 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.
06 - Stir in pasta and continue simmering uncovered for 10 minutes or until pasta reaches al dente texture and meatballs are fully cooked through.
07 - 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.
08 - Ladle soup into individual bowls. Garnish with grated Parmesan and fresh herbs. Accompany with crusty bread if desired.

# Expert Advice:

01 -
  • The combination of tender meatballs swimming in a creamy tomato broth feels like something from an Italian grandmothers kitchen but comes together in under an hour
  • Its one of those rare soups that actually satisfies as a full meal, leaving everyone at the table completely content
  • The heavy cream transforms what would be a standard tomato soup into something velvety and luxurious without being overly heavy
02 -
  • The meatballs will continue cooking in the simmering broth, so don't worry if they seem slightly underdone when you take them out of the pan
  • Add the heavy cream at the very end and keep the heat low once it's added, or it might separate and look curdled
  • The pasta will absorb liquid as it sits, so if you're planning leftovers, the soup will be thicker the next day
03 -
  • Keep a small bowl of water beside you when forming meatballs to prevent the mixture from sticking to your hands
  • Let the soup rest for 5 minutes off the heat before serving to let the flavors settle and the temperature become perfect for eating