This comforting Authentic Classic Italian Wedding Soup With Meatballs is made with tender beef-pork bites, acini di pepe, and fresh escarole, ready in 45 minutes. The rich broth deepens in flavor as the meatballs poach directly in the liquid, creating a perfect union of savory meat and bright greens. I make this whenever I need a restaurant-quality meal that feels like a warm hug.
Why This Classic Works
I used to make the mistake of baking my meatballs before adding them to the soup, which often dried them out and left the broth tasting flat. I learned that dropping the raw meatballs gently into the simmering liquid is the secret to getting that melt-in-your-mouth texture while simultaneously seasoning the stock.
Another game-changer was switching from baby spinach back to the traditional escarole. While spinach gets slimy quickly, escarole holds its structure and offers a subtle bitterness that cuts right through the richness of the pork and parmesan for a perfectly balanced spoonful.
Authentic Classic Italian Wedding Soup With Meatballs Ingredients
For the Meatballs:
- 1/2 lb ground beef (85% lean)
- 1/2 lb ground pork
- 1/2 cup plain breadcrumbs (or panko)
- 1/4 cup milk
- 1/3 cup grated Parmesan cheese
- 1 large egg, beaten
- 2 cloves garlic, minced
- 2 tbsp fresh parsley, chopped
- 1/2 tsp salt
- 1/4 tsp black pepper
For the Soup:
- 2 tbsp olive oil
- 1 yellow onion, diced
- 3 carrots, peeled and diced
- 2 stalks celery, diced
- 3 cloves garlic, minced
- 10 cups chicken broth (preferably low sodium)
- 1 cup acini di pepe pasta
- 1 head escarole, washed and chopped (rough stems removed)
- 1 Parmesan cheese rind (optional but recommended)
- Salt and pepper to taste

How To Make Authentic Classic Italian Wedding Soup With Meatballs
- Form the Meatballs: In a small bowl, soak the breadcrumbs in the milk for 5 minutes until absorbed. In a large bowl, gently mix the soaked breadcrumbs, ground beef, ground pork, Parmesan, egg, minced garlic, parsley, salt, and pepper with your hands until just combined. Roll into small, 1-inch meatballs (about the size of a large grape) and set aside on a plate.
- Sauté the Vegetables: Heat the olive oil in a large Dutch oven or soup pot over medium heat. Add the onion, carrots, and celery. Cook for 6-8 minutes until the onions are translucent and the vegetables begin to soften, then stir in the minced garlic and cook for 1 more minute until fragrant.
- Simmer the Broth: Pour in the chicken broth and add the Parmesan rind if using. Increase the heat to high to bring the soup to a rolling boil, then reduce the heat to a steady simmer.
- Poach the Meatballs: Carefully drop the raw meatballs into the simmering broth one by one. Do not stir immediately or they may break apart. Let them simmer gently for about 5 minutes until they float to the surface and firm up slightly.
- Cook Pasta and Greens: Stir in the acini di pepe pasta and the chopped escarole. Simmer for another 8-10 minutes, or until the pasta is al dente and the meatballs are fully cooked through (165°F internal temperature).
- Finish and Serve: Remove the Parmesan rind. Taste the broth and season with additional salt and pepper if needed. Ladle into bowls and top with extra grated Parmesan cheese.

Recipe Tips
- Don’t Overmix the Meat: When combining your meatball ingredients, mix only until everything is incorporated. Overworking the meat mixture will result in tough, rubbery meatballs rather than tender bites.
- The Parmesan Rind: Save the hard rind from your wedge of Parmesan cheese and toss it into the simmering broth. It releases a deep, savory umami flavor that store-bought stock can’t replicate on its own.
- Pasta Timing: Acini di pepe cooks relatively quickly and will continue to absorb liquid as it sits. If you plan to have leftovers, you might want to cook the pasta separately and add it to individual bowls to prevent the soup from becoming a stew.
What To Serve With Authentic Classic Italian Wedding Soup
This soup is a meal in itself, but it pairs beautifully with a slice of crusty artisan bread or garlic knots to soak up the savory broth. A crisp green salad with a sharp vinaigrette also helps cleanse the palate between rich, meaty spoonfuls.

How To Store
Store leftovers in an airtight container in the refrigerator for up to 3 days. Note that the pasta will swell and absorb the broth overnight, so you will likely need to add a splash of water or extra chicken stock when reheating on the stove. This soup freezes well for up to 3 months, though the vegetables may lose some texture.
FAQs
Can I use spinach instead of escarole?
Yes, spinach is a common substitute if you can’t find escarole. Since spinach is more delicate, add it only in the last 2 minutes of cooking so it wilts without disintegrating.
Why is it called Wedding Soup?
The name is a mistranslation of the Italian phrase “minestra maritata,” which refers to the “marriage” of flavors between the meat and the greens, not an actual wedding ceremony.
Can I use turkey instead of beef and pork?
Absolutely. Ground turkey or chicken works well for a lighter version. Just be sure to keep the breadcrumb and milk panade step to ensure the poultry meatballs stay moist.
Nutrition
- Calories: 380
- Total Fat: 18g
- Saturated Fat: 6g
- Cholesterol: 85mg
- Sodium: 1100mg
- Total Carbohydrate: 32g
- Protein: 24g
Try More Recipes:
- Spicy Italian Sausage Vegetable Tortellini Soup Recipe
- Italian Wedding Soup With Chicken Meatballs And Escarole
- Hearty Italian Vegetable Garden Soup Recipe
Authentic Classic Italian Wedding Soup With Meatballs
6
servings20
minutes25
minutes45
minutesSavory Authentic Classic Italian Wedding Soup With Meatballs features juicy beef-pork bites, tender acini di pepe, and fresh escarole ready in 45 minutes. This comforting one-pot meal delivers restaurant-quality flavor with simple ingredients and minimal cleanup for a perfect weeknight dinner.
Ingredients
For the Meatballs:
1/2 lb ground beef (85% lean)
1/2 lb ground pork
1/2 cup plain breadcrumbs (or panko)
1/4 cup milk
1/3 cup grated Parmesan cheese
1 large egg, beaten
2 cloves garlic, minced
2 tbsp fresh parsley, chopped
1/2 tsp salt
1/4 tsp black pepper
For the Soup:
2 tbsp olive oil
1 yellow onion, diced
3 carrots, peeled and diced
2 stalks celery, diced
3 cloves garlic, minced
10 cups chicken broth (preferably low sodium)
1 cup acini di pepe pasta
1 head escarole, washed and chopped (rough stems removed)
1 Parmesan cheese rind (optional but recommended)
Salt and pepper to taste
Directions
- Form the Meatballs: In a small bowl, soak the breadcrumbs in the milk for 5 minutes until absorbed. In a large bowl, gently mix the soaked breadcrumbs, ground beef, ground pork, Parmesan, egg, minced garlic, parsley, salt, and pepper with your hands until just combined. Roll into small, 1-inch meatballs (about the size of a large grape) and set aside on a plate.
- Sauté the Vegetables: Heat the olive oil in a large Dutch oven or soup pot over medium heat. Add the onion, carrots, and celery. Cook for 6-8 minutes until the onions are translucent and the vegetables begin to soften, then stir in the minced garlic and cook for 1 more minute until fragrant.
- Simmer the Broth: Pour in the chicken broth and add the Parmesan rind if using. Increase the heat to high to bring the soup to a rolling boil, then reduce the heat to a steady simmer.
- Poach the Meatballs: Carefully drop the raw meatballs into the simmering broth one by one. Do not stir immediately or they may break apart. Let them simmer gently for about 5 minutes until they float to the surface and firm up slightly.
- Cook Pasta and Greens: Stir in the acini di pepe pasta and the chopped escarole. Simmer for another 8-10 minutes, or until the pasta is al dente and the meatballs are fully cooked through (165°F internal temperature).
- Finish and Serve: Remove the Parmesan rind. Taste the broth and season with additional salt and pepper if needed. Ladle into bowls and top with extra grated Parmesan cheese.
