Creamy Italian Meatball Soup (Printable)

Tender meatballs simmer in a velvety tomato-vegetable broth with pasta for the ultimate comforting bowl.

# What You Need:

→ For the Meatballs

01 - 1.1 lbs ground beef or beef and pork mixture
02 - 1/2 cup breadcrumbs
03 - 1/4 cup grated Parmesan cheese
04 - 1 large egg
05 - 2 cloves garlic, minced
06 - 2 tbsp chopped fresh parsley
07 - 1 tsp dried oregano
08 - 1/2 tsp salt
09 - 1/4 tsp ground black pepper

→ For the Soup

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

→ For Serving

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

# Steps:

01 - Combine ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl. Mix gently until just incorporated. Form mixture into small meatballs approximately 1 inch in diameter and set aside on a plate.
02 - Heat 1 tablespoon olive oil in a large soup pot over medium heat. Add meatballs in batches without overcrowding, turning occasionally to brown on all sides. Meatballs should be browned but not fully cooked through. Transfer to a clean plate and repeat until all are browned.
03 - Add remaining 1 tablespoon olive oil to the same pot. Sauté diced onion, carrots, and celery for 5 minutes until softened and fragrant. Add minced garlic, dried basil, thyme, and red pepper flakes. Cook for 1 additional minute until garlic is aromatic.
04 - Pour in crushed tomatoes, broth, and add bay leaf. Bring mixture to a gentle simmer. Return browned meatballs to the pot. Cover and maintain a gentle simmer for 15 minutes to develop flavors and partially cook meatballs.
05 - Stir in small pasta and continue simmering uncovered for 10 minutes or until pasta reaches al dente texture and meatballs are completely cooked through. Stir occasionally to prevent pasta from sticking.
06 - Reduce heat to low setting. Remove and discard bay leaf. Gradually stir in heavy cream followed by chopped spinach. Cook for 2 to 3 minutes until spinach wilts and soup becomes creamy and well combined. Taste and adjust seasoning with salt and pepper as needed.
07 - Ladle hot soup into individual serving bowls. Generously top with freshly grated Parmesan cheese and chopped fresh herbs. Accompany with crusty bread if desired.

# Expert Advice:

01 -
  • The meatballs stay impossibly tender because they simmer right in the broth instead of baking first
  • That moment when heavy cream hits the tomato base and turns everything into the most gorgeous coral color
  • Its practically a complete meal in one bowl but feels like being hugged from the inside
02 -
  • The pasta will soak up liquid like crazy so if making ahead keep pasta separate or add more broth before serving leftovers
  • Heavy cream can separate if boiled too hard so keep the heat gentle once you add it
  • Meatballs can be made ahead and frozen raw then dropped directly into simmering soup
03 -
  • Use a cookie scoop to make perfectly uniform meatballs that cook evenly
  • Let the meat mixture rest in the fridge for 30 minutes before shaping if you have time
  • Finish with a splash of high quality olive oil right before serving for extra richness