Italian Wedding Soup Recipe

Despite the name, this has nothing to do with weddings. It’s just tiny meatballs in a rich broth with greens and pasta. The key to a great version is building flavor at every step: browning the meatballs, using a panade to keep them tender, and simmering the broth with a Parmesan rind.

Published July 25, 2025
Jump to Recipe
Italian Wedding Soup

Ingredients

For the Meatballs

  • 2 slices sturdy white bread, crusts removed
  • 1/4 cup whole milk
  • 1/2 pound ground beef
  • 1/2 pound ground pork
  • 1 large egg, lightly beaten
  • 3 cloves garlic, minced
  • 1/2 cup freshly grated Parmigiano-Reggiano cheese, plus more for serving
  • 1/3 cup fresh parsley, minced
  • 1 1/2 teaspoons Diamond Crystal kosher salt
  • 1/2 teaspoon freshly ground black pepper

For the Soup

  • 2 tablespoons olive oil
  • 1 large onion, diced
  • 2 carrots, diced
  • 2 celery stalks, diced
  • 10 cups chicken broth
  • 1 Parmesan cheese rind (optional, but recommended)
  • 1 cup small pasta (like acini di pepe or orzo)
  • 1 head escarole, chopped
  • Juice of 1/2 lemon

Make the Meatballs

First, make the panade. Tear the crustless bread into small pieces and place them in a large bowl. Pour the milk over the bread and let it soak for ~5-10 minutes until it’s a soft paste. This panade is what keeps the meatballs tender.

To the bowl with the panade, add the ground beef, ground pork, beaten egg, minced garlic, 1/2 cup of Parmesan, parsley, salt, and pepper. Mix with your hands until just combined. Do not overwork the mixture.

Form the mixture into small, 1-inch meatballs and place them on a baking sheet.

Brown the Meatballs and Build the Soup

In a large Dutch oven or heavy-bottomed pot, heat the olive oil over medium-high heat.

Working in batches, brown the meatballs on all sides, about 4-5 minutes per batch. They do not need to be cooked through. Transfer the browned meatballs to a plate.

Reduce the heat to medium. Add the onion, carrots, and celery to the same pot, scraping up any browned bits from the bottom. Cook for ~5-7 minutes, until the vegetables have softened.

Simmer and Finish

Pour the chicken broth into the pot and add the Parmesan rind. Bring the soup to a boil, then reduce to a simmer.

Stir in the small pasta and cook for about 5 minutes.

Return the browned meatballs to the pot and continue to simmer for another 8-10 minutes, until the pasta is al dente and the meatballs are cooked through.

Stir in the chopped escarole and cook for another 2-3 minutes, just until it has wilted into the soup.

Remove the pot from the heat. Discard the Parmesan rind. Stir in the fresh lemon juice. Taste and adjust seasoning with more salt and pepper if needed.

Ladle into bowls and serve hot, with a generous amount of extra grated Parmesan on top.

Italian Wedding Soup

Italian Wedding Soup

Despite the name, this has nothing to do with weddings. It’s just tiny meatballs in a rich broth with greens and pasta. The key to a great version is building flavor at every step: browning the meatballs, using a panade to keep them tender, and simmering the broth with a Parmesan rind.
Prep Time 30 minutes
Cook Time 35 minutes
Total Time 1 hour 5 minutes

Ingredients

For the Meatballs

  • 2 slices sturdy white bread crusts removed
  • 1/4 cup whole milk
  • 1/2 pound ground beef
  • 1/2 pound ground pork
  • 1 large egg lightly beaten
  • 3 cloves garlic minced
  • 1/2 cup freshly grated Parmigiano-Reggiano cheese plus more for serving
  • 1/3 cup fresh parsley minced
  • 1 1/2 teaspoons Diamond Crystal kosher salt
  • 1/2 teaspoon freshly ground black pepper

For the Soup

  • 2 tablespoons olive oil
  • 1 large onion diced
  • 2 carrots diced
  • 2 celery stalks diced
  • 10 cups chicken broth
  • 1 Parmesan cheese rind optional, but recommended
  • 1 cup small pasta like acini di pepe or orzo
  • 1 head escarole chopped
  • Juice of 1/2 lemon

Method

  • Soak bread pieces in milk for 5-10 min until pasty.
  • Mix bread mixture with meats, egg, garlic, Parmesan, parsley, salt and pepper until just combined.
  • Form into 1-inch meatballs.
  • Heat oil in Dutch oven over medium-high heat.
  • Brown meatballs in batches 4-5 min; set aside.
  • Reduce heat to medium; cook onion, carrots, celery 5-7 min until soft.
  • Add broth and Parmesan rind; bring to boil then simmer.
  • Add pasta, cook 5 min.
  • Return meatballs; simmer 8-10 min until pasta is al dente.
  • Add escarole; cook 2-3 min until wilted.
  • Remove from heat; discard rind.
  • Stir in lemon juice; season to taste.
  • Serve hot with extra Parmesan.

Notes

Do not overwork meatball mixture.
Meatballs don’t need to be fully cooked during browning as they’ll finish in the soup.

Leave the first comment

Recipe Rating