Creamy Italian Meatball Soup (Printer-friendly)

Hearty soup with tender meatballs, vegetables, and creamy tomato broth perfect for cozy evenings.

# 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 such as ditalini or orzo
22 - 3/4 cup heavy cream
23 - 3.5 ounces 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

# How to Prepare:

01 - Combine ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl. Mix until just combined, being careful not to overwork the meat. Form mixture into small meatballs approximately 1 inch in diameter and set aside on a plate or cutting board.
02 - Heat 1 tablespoon olive oil in a large soup pot over medium heat. Add meatballs in batches without overcrowding the pot, turning occasionally to brown evenly on all sides. They will finish cooking later in the soup. Transfer browned meatballs to a plate and repeat with remaining batches.
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, dried thyme, and red pepper flakes; continue cooking for 1 minute more until garlic is aromatic.
04 - Pour in crushed tomatoes and broth, then add the bay leaf. Bring mixture to a gentle simmer. Return browned meatballs to the pot along with any accumulated juices. Cover and maintain a gentle simmer for 15 minutes to develop flavors and partially cook meatballs.
05 - Stir in the small pasta and continue simmering uncovered for approximately 10 minutes, or until pasta is al dente and meatballs are cooked through completely. Stir occasionally to prevent pasta from sticking to the bottom of the pot.
06 - Reduce heat to low setting and remove the bay leaf. Pour in heavy cream while stirring constantly. Add chopped spinach and cook for 2 to 3 minutes until spinach is wilted and soup has a creamy consistency. Taste and adjust seasoning with additional salt and pepper as needed.
07 - Ladle hot soup into individual serving bowls. Generously top each portion with freshly grated Parmesan cheese and a sprinkle of chopped fresh basil or parsley. Accompany with crusty bread for dipping if desired.

# Expert Advice:

01 -
  • The meatballs stay impossibly tender simmering right in the broth instead of baked separately
  • That moment when heavy cream hits the tomato base transforms everything into something restaurant worthy
  • Its one of those rare soups that actually gets better overnight for lunch the next day
02 -
  • The meatballs will absorb some of the broth as they cook so you may need to add more liquid the next day
  • Always stir the cream in off the heat or at very low temperature to prevent separating
  • The pasta continues cooking in the soup so undercook it slightly in the pot
03 -
  • Mix the meatball mixture with wet hands to prevent sticking
  • Let the soup cool slightly before adding cream if youre nervous about curdling
  • Taste and season after the cream is added since dairy mutes flavors