Every single time I make this soup, I think about the name. Italian Wedding Soup has nothing to do with a wedding, and everything to do with a promise. The phrase comes from the Italian “minestra maritata,” which means “married soup,” referring to the beautiful union of greens and meat in the broth. It’s a perfect marriage of flavors, and once you taste it, you’ll understand exactly why that name stuck.
This version is built for a weeknight, but it tastes like you spent all day stirring a pot in a rustic Italian kitchen. We are talking about tender, tiny meatballs that stay impossibly juicy, a rich and savory broth, and little pearls of pasta that soak up all that goodness. It is the kind of italian soup that wraps you up in a warm hug, and it is easier to pull off than you think.
The Italian Wedding Soup Difference
- Unbelievably Tender Meatballs: Using a panade (a paste of bread and milk) keeps the tiny meatballs from turning into dry, dense pebbles. They stay light and soft in the broth.
- Layered Flavor Without the Work: By browning the meatballs first and then simmering them in the broth, we get a deep, savory flavor that tastes like it cooked for hours.
- Perfect Texture Every Time: The pasta is cooked separately until just al dente, so it doesn’t turn into mush in your soup pot. You get a perfect bite every single time.
The Building Blocks

For the meatballs, you want a mix of ground meats for the best flavor. For the broth, a good quality chicken stock is your best friend. And for the greens, fresh escarole or spinach gives that lovely, slightly bitter edge that cuts through the richness.
For the Tiny Meatballs
- 1/2 lb ground beef (80/20 for flavor)
- 1/2 lb ground pork
- 1/3 cup fresh breadcrumbs (from 1 slice of bread)
- 1/4 cup whole milk (to make the panade)
- 1 large egg, lightly beaten
- 1/3 cup freshly grated Parmesan cheese (the real stuff, not the green can)
- 2 cloves garlic, minced
- 1/2 teaspoon salt
- 1/4 teaspoon black pepper
- 1/4 teaspoon nutmeg (a secret weapon for Italian meatballs)
For the Soup
- 2 tablespoons olive oil
- 1 medium yellow onion, finely diced
- 2 large carrots, peeled and diced
- 2 celery stalks, diced
- 3 cloves garlic, minced
- 8 cups low-sodium chicken broth
- 1 head escarole, roughly chopped (or 5 oz baby spinach)
- 1/2 cup small pasta (acini di pepe, orzo, or stelline)
- Salt and pepper to taste
- Freshly grated Parmesan, for serving
Swaps & Alternatives
- Meat Mix: Use all ground turkey or chicken for a lighter version. Just add a tablespoon of olive oil to the mix for moisture.
- Greens: No escarole? No problem. Use kale (remove the tough stems first) or Swiss chard. Spinach is the quickest option.
- Pasta: Gluten-free pasta works well here. Just be careful not to overcook it.
- Broth: For a deeper flavor, use a mix of chicken and beef broth. It adds a wonderful richness.
- Dairy-Free: Skip the Parmesan in the meatballs and use a dairy-free milk in the panade. The soup will still be delicious.
Flavor Boosts
Once you master the base recipe, these little twists will make it your own signature dish.- Lemon Zest Finish: Stir in the zest of one lemon right before serving. It brightens the entire bowl and makes the flavors sing.
- Red Pepper Flakes: Add a pinch of crushed red pepper flakes to the sautéing aromatics for a gentle warmth that builds as you eat.
- Herby Finish: A handful of fresh dill or parsley stirred in at the end adds a fresh, green note that contrasts beautifully with the rich broth.
- Parmesan Rind: Drop a Parmesan rind into the broth while it simmers. It infuses the entire soup with an umami depth you can’t get any other way.
Easy Instructions

1. Make the Panade and Meatball Mix
In a large bowl, combine the fresh breadcrumbs and milk. Let it sit for 2-3 minutes until the bread has absorbed the liquid and formed a paste. This is your panade, and it is the secret to tender meatballs. Add the ground beef, ground pork, beaten egg, Parmesan, garlic, salt, pepper, and nutmeg. Use your hands to gently mix everything together until just combined. Do not overwork the meat, or the meatballs will be tough.2. Roll the Tiny Meatballs
Roll the mixture into small, 1-inch meatballs. You should get about 30-35 meatballs. Place them on a plate or baking sheet. They don’t need to be perfect, just uniform in size so they cook evenly.3. Brown the Meatballs
Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat. Working in two batches to avoid crowding the pot, brown the meatballs on all sides. They don’t need to be cooked through, just get a nice golden crust. This takes about 3-4 minutes per batch. Use a slotted spoon to transfer them to a plate.4. Sauté the Aromatics
Reduce the heat to medium. Add the onion, carrots, and celery to the pot. Sauté for 5-6 minutes, scraping up any browned bits from the bottom of the pot. Add the minced garlic and cook for another 30 seconds until fragrant.5. Build the Broth and Simmer
Pour in the chicken broth and bring it to a boil. Once boiling, carefully add the browned meatballs back to the pot. Reduce the heat to a gentle simmer. Let the soup cook for 10 minutes, allowing the meatballs to finish cooking and the flavors to meld.6. Cook the Pasta and Add the Greens
While the soup simmers, cook the pasta in a separate pot of salted boiling water until just al dente. Drain it and set it aside. Stir the chopped escarole (or spinach) into the soup. Cook for 2-3 minutes until the greens have wilted. Turn off the heat.7. Combine and Serve
Stir the cooked pasta into the soup. Taste the broth and adjust the salt and pepper as needed. Ladle the soup into bowls and top with a generous shower of freshly grated Parmesan cheese. Serve immediately with crusty bread for dipping.Common Mistakes to Avoid
- Overworking the Meatball Mix: Mixing the meat too much develops the proteins and makes the meatballs dense and tough. Mix just until everything is combined.
- Skipping the Panade: This is the single most important step for tender meatballs. The bread and milk keep them moist. Do not skip it.
- Cooking the Pasta in the Soup: Pasta continues to absorb liquid and will turn into a mushy, starchy mess. Always cook it separately and add it at the end.
Perfect Pairings
This soup is a meal in a bowl, but it loves company. A simple italian salad with a sharp vinaigrette is the perfect counterpoint to the rich broth.For a full Italian feast, start with this soup and follow it up with a plate of Italian Stuffed Artichokes. The bright, lemony artichokes are a fantastic follow-up.
If you are craving more hearty soup dishes, this one fits right in with other classics. It is one of my favorite soup ideas for a cold evening. You could also serve it alongside a bowl of Creamy Tomato Basil Soup for a double-soup dinner that is pure comfort. For a richer, cheese-laden option, a bowl of French Onion Soup is always a welcome neighbor on the table.
Make-Ahead and Storage Tips
This soup is a dream for meal prep. The flavors actually get better after a day in the fridge. Store the soup base (broth, meatballs, and greens) separately from the cooked pasta. When you are ready to eat, simply reheat the soup base and stir in the pasta.It also freezes beautifully. Freeze the soup base without the pasta in airtight containers for up to 3 months. Thaw overnight in the fridge and reheat gently. Cook fresh pasta to serve. If you love a creamy, hearty soup, you will also enjoy this Olive Garden Chicken Gnocchi Soup for another cozy night in.
More Italian Comfort
If you are on an Italian kick, this soup is just the beginning. A hearty bowl of Hearty Italian Sausage White Bean Soup is a fantastic, protein-packed option for a busy week. And for a completely different kind of comfort, try a bowl of Instant Pot Wild Rice Soup for a creamy, earthy alternative that is just as satisfying.First time making Italian Wedding Soup? I hope this guide made it easy. Let me know how it turned out!
Why is it called Italian Wedding Soup if it has nothing to do with weddings?
The name comes from the Italian phrase ‘minestra maritata,’ which means ‘married soup.’ It refers to the perfect union or ‘marriage’ of greens and meat in the broth, not an actual wedding ceremony.
What is the secret to keeping the tiny meatballs tender and juicy?
The key is using a panade, which is a paste made from fresh breadcrumbs and milk. Adding this to the meat mixture prevents the meatballs from becoming dry and dense, keeping them light and soft.
Why should you cook the pasta separately instead of in the soup broth?
Cooking the pasta separately ensures it stays al dente and doesn’t turn into a mushy, starchy mess. Pasta continues to absorb liquid, so adding it at the end keeps the texture perfect.
What is the best way to store and reheat this soup for meal prep?
Store the soup base (broth, meatballs, and greens) separately from the cooked pasta. When ready to eat, reheat the soup base and stir in the pasta. The soup base can also be frozen for up to 3 months.


Italian Wedding Soup with Tiny Meatballs
Equipment
- Large Dutch oven or heavy-bottomed pot
- Large mixing bowl
- Small bowl
- Baking sheet or large plate
- Slotted spoon
- Wooden spoon or spatula
- Chef’s knife
- Cutting board
- Measuring cups and spoons
- Box grater (for Parmesan)
- Medium saucepan (for cooking pasta)
- Colander
Ingredients
- ½ lb ground beef 80/20
- ½ lb ground pork
- ⅓ cup fresh breadcrumbs from 1 slice of bread
- ¼ cup whole milk
- 1 large egg, lightly beaten
- ⅓ cup freshly grated Parmesan cheese
- 2 cloves garlic, minced
- ½ teaspoon salt
- ¼ teaspoon black pepper
- ¼ teaspoon ground nutmeg
- 2 tablespoons olive oil
- 1 medium yellow onion, finely diced
- 2 large carrots, peeled and diced
- 2 celery stalks, diced
- 3 cloves garlic, minced
- 8 cups low-sodium chicken broth
- 1 head escarole, roughly chopped or 5 oz baby spinach
- ½ cup small pasta acini di pepe, orzo, or stelline
- Salt and pepper to taste
- Freshly grated Parmesan, for serving
Instructions
- Make the panade: In a small bowl, combine the fresh breadcrumbs and milk. Let sit for 2-3 minutes until the bread absorbs the liquid and forms a paste.
- Make the meatball mix: In a large bowl, combine the ground beef, ground pork, panade, beaten egg, Parmesan, 2 cloves minced garlic, salt, pepper, and nutmeg. Gently mix with your hands until just combined; do not overwork.
- Roll the meatballs: Roll the mixture into small, 1-inch meatballs (about 30-35 total). Place them on a plate or baking sheet.
- Brown the meatballs: Heat the olive oil in a large Dutch oven over medium-high heat. Working in two batches, brown the meatballs on all sides (about 3-4 minutes per batch). Transfer to a plate using a slotted spoon.
- Sauté the aromatics: Reduce heat to medium. Add the onion, carrots, and celery to the pot. Sauté for 5-6 minutes, scraping up any browned bits. Add the remaining 3 cloves minced garlic and cook for 30 seconds until fragrant.
- Build the broth: Pour in the chicken broth and bring to a boil. Carefully add the browned meatballs back to the pot. Reduce heat to a gentle simmer and cook for 10 minutes.
- Cook the pasta: While the soup simmers, cook the pasta in a separate pot of salted boiling water until just al dente. Drain and set aside.
- Add the greens: Stir the chopped escarole (or spinach) into the soup. Cook for 2-3 minutes until wilted. Turn off the heat.
- Combine and serve: Stir the cooked pasta into the soup. Taste and adjust salt and pepper. Ladle into bowls and top with a generous shower of freshly grated Parmesan. Serve immediately.
