Go Back
Italian Wedding Soup Plated

Italian Wedding Soup

This hearty soup is signature Italian American. With a beautiful and delicious combination of savory mini-meatballs, mildly bitter escarole, a rich broth, hints of parmigiano cheese, its full-bodied flavor will not disappoint!
5 from 2 votes
Prep Time 1 hr 15 mins
Cook Time 40 mins
Total Time 1 hr 55 mins
Course Soup
Cuisine Italian
Servings 12 servings


For the Meatballs(makes about 70 - .4 ounce meatballs):

  • 2 large eggs, beaten
  • 1/2 cup whole milk
  • 1/2 cup breadcrumbs (See NOTE below.)
  • 1/2 cup grated cheese (See NOTE below.)
  • 1/4 cup minced yellow onion, (about ½ large onion)
  • 2 Tbsp fresh basil, chopped
  • 2 Tbsp fresh parsley, chopped
  • 1/2 Tbsp minced garlic
  • 1 tsp salt
  • 1/2 tsp ground black pepper
  • 1 lb ground beef (90/10 grind is preferable)

For the Soup:

  • 4 Tbsp olive oil
  • 1/4 cup thinly sliced or chopped garlic
  • pinch crushed red pepper
  • 2 Tbsp tomato paste
  • 2 cups small diced yellow onions
  • 1 cup small diced carrots
  • 1 cup small diced celery
  • 2 1/2 quarts chicken or meat broth, preferably homemade
  • 1-2 parmigiano cheese rinds
  • 2 large heads escarole, cored, chopped into bite-sized pieces, rinsed of all dirt and drained of all liquid (about 2 pounds)
  • to taste salt and freshly ground black pepper
  • Pecorino Romano cheese, grated (for serving)


  • Prep all ingredients according to specifications above.
  • Make the meatballs: In a large bowl, whisk the eggs & milk together, then immerse the breadcrumbs in it & ensure they are fully immersed. Let this mixture sit for 1 to 2 minutes to allow the breadcrumbs to get soaked by the liquids, then add the next 7 ingredients and mix together until well-combined. Gently fold in the ground beef and mix so that all is well-combined. Do not overmix! Form mixture into small meatballs, about .4-.5 ounce each, and arrange them on a large plate or sheet pan and set them aside until you are ready to add them to the soup. (See NOTE below.)
  • Add the oil, garlic and crushed red pepper to a large pot or Dutch oven (at least 7 quarts) over medium-low heat and cook for 2-3 minutes or until the garlic starts to brown. Then, increase the heat to medium, add the tomato paste and caramelize it for about two minutes.
  • Add the onions, carrots and celery and continue to sauté until they are mostly softened, about 5-7 minutes.
  • Carefully pour the broth into the pot, add the parmigiano rind, cover and bring the broth to a light simmer.
  • One-by-one (so as to not damage/cause the meatballs to clump together) add the meatballs to the broth while gently stirring. Slowly bring the broth back up to a simmer, while stirring occasionally, and ensure that the meatballs are set.
  • Once the meatballs are set (cooked), gently add the escarole to the broth in batches as the escarole leaves are gradually wilted in the broth.
  • Partially cover the pot, then simmer the soup until the escarole leaves are tender. Season with salt and black pepper.
  • Serve piping hot with a generous sprinkle of grated Pecorino Romano cheese. Buon Appetito!


  • This recipe can easily be cut in half to yield a smaller amount. If you do this, you can use a smaller pot.
  • Homemade breadcrumbs are ideal, but regular purchased breadcrumbs work well, too. No need to get the “Italian” or seasoned breadcrumbs unless you prefer them, as this recipe has lots of flavor as is!
  • Parmigiano-Reggiano, Pecorino Romano, and Grana Padano are all great cheese options. The cheese should be grated and not shredded.
  • When making the meatballs, it is important to soak the breadcrumbs in the milk/egg mixture for a couple of minutes, then mix this with the rest of the non-meat ingredients well before combining it with the ground beef. This is done so that the actually mixing of the ground meat will be minimized, preventing the mixture from being overworked and resulting in tough meatballs.
  • The actual size of the meatballs is a personal choice, but I suggest keeping them at ½ ounce or smaller for this recipe. Also, using a portioning scoop or spoon will result in consistently-sized meatballs.
  • The meatballs can be cooked separately from the soup if you prefer. To do this, arrange them in rows on a parchment-lined sheet pan and roast in a 350°F oven for about 8-10 minutes. However, the flavor of the broth will be so much richer if you cook the meatballs in the broth as described in the recipe above.
  • To save time when cooking, prep the escarole in advance and store it in a zip-lock bag in the refrigerator for up to one day. Also, the meatball mixture can be made in advance, formed and held, raw, in the refrigerator for up to one day if covered tightly.
  • The soup gets better as it sits, so it is a great option to make ahead of time.
  • This soup freezes really well! Make a large batch, portion it into containers and freeze for up to two months to enjoy down the road.
Recipe by Mangia With Michele. Please visit my site for more great cooking inspiration!
If you try this recipe, please share a photo on INSTAGRAM or FACEBOOK and tag it @MangiaWithMichele and #MangiaWithMichele. I’d love to see it!
Keyword soup, italian wedding soup, wedding soup, escarole soup, soup recipes