A good Italian wedding soup should feel busy without feeling crowded. One spoonful can hold a tender little meatball, tiny pasta, sweet carrot, wilted escarole and enough hot, savory broth to carry all of it.
This Italian wedding soup recipe is built for that kind of spoonful. The beef-and-pork meatballs stay small and poach directly in the broth, so you can skip browning dozens of them in batches. Acini di pepe gives you pasta in almost every bite without taking over the pot, while escarole brings a gentle bitterness that keeps the meat and Parmesan from feeling too rich.
Easy here means straightforward, not rushed: no homemade stock, no meatball-browning marathon and no complicated finish.
Planning leftovers? Cook the acini di pepe separately in salted water and add it bowl by bowl. Eating most of the soup today? Cook it directly in the broth and keep the recipe to one pot.
Italian Wedding Soup Recipe
Tender beef-and-pork mini meatballs, acini di pepe and escarole in a light chicken broth.
Equipment
- 6- to 7-quart (5.7- to 6.6-liter) Dutch oven or heavy soup pot
- Large mixing bowl
- Chef’s knife and cutting board
- 2-teaspoon cookie scoop or measuring spoon, optional
- Instant-read thermometer, recommended
- Small saucepan, only if cooking the pasta separately
Ingredients
For the Mini Meatballs
- ⅓ cup (35 g) plain fine breadcrumbs
- ¼ cup (60 ml) whole milk
- 8 oz (227 g) ground beef, preferably 85–90% lean
- 8 oz (227 g) ground pork
- 1 large egg
- ⅓ cup (30 g) finely grated Parmesan or Parmigiano-Reggiano
- 2 tablespoons finely chopped flat-leaf parsley
- 1 small garlic clove, finely grated or minced
- ¾ teaspoon fine sea salt
- ½ teaspoon freshly ground black pepper
For the Soup
- 1 tablespoon (15 ml) olive oil
- 1 medium yellow onion, finely diced, about 6 oz (170 g)
- 2 medium carrots, cut into roughly ¼-inch (6-mm) dice, about 5 oz (140–150 g)
- 2 celery ribs, cut into roughly ¼-inch (6-mm) dice, about 3½ oz (100 g)
- 2 garlic cloves, minced
- 8 cups (1.9 L) low-sodium chicken broth or stock
- 1 Parmesan rind, about 2–3 inches (5–7.5 cm), optional
- ½ cup (about 3 oz / 85 g) dry acini di pepe
- 6 oz (170 g) escarole, thoroughly washed and cut into roughly 1-inch (2.5-cm) pieces
- Fine sea salt and freshly ground black pepper, as needed
- Finely grated Parmesan or Pecorino Romano, for serving
Instructions
Make the Mini Meatballs
- Make the panade. Combine the breadcrumbs and milk in a large bowl. Leave for about 5 minutes, until the crumbs have absorbed the milk and softened.
- Mix the meatballs. Add the beef, pork, egg, Parmesan, parsley, garlic, salt and pepper. Mix with your fingers or a fork only until everything is evenly distributed. If you want to check the seasoning before shaping the whole batch, cook a teaspoonful in a small skillet, taste it and adjust now.
- Shape them small. Portion about 2 teaspoons of mixture at a time and roll lightly between damp hands. Aim for 1-inch (2.5-cm) meatballs. You should get about 55 to 60. They do not need to be perfectly round.
Build the Broth and Poach
- Soften the vegetables. Heat the olive oil over medium heat. Add the onion, carrots and celery with a small pinch of salt. Cook for 6 to 8 minutes, stirring occasionally, until softened but not browned. Add the garlic and cook for about 30 seconds, until fragrant.
- Start the broth. Pour in the chicken broth and add the Parmesan rind, if using. Bring just to a boil, then lower the heat to a steady simmer.
- Poach the meatballs. Lower them into the pot in several quick groups so they are spread around the broth. Let the broth return to a simmer, then leave the meatballs undisturbed for about 2 minutes before stirring gently. There is no need to brown them first.
Finish the Soup
- Cook the pasta. For the one-pot version, add the acini di pepe after those first 2 minutes and cook according to the package timing. If your pasta cooks in only 5 to 6 minutes, give the meatballs another minute or two first. For the separate-pasta version, cook the acini in a second pot of salted water and drain while still al dente.
- Check a meatball. For the one-pot beef-and-pork version, check one of the larger meatballs when the pasta has 2 to 3 minutes left; it should reach 160°F (71°C). If the pasta is cooking separately, start checking after about 8 minutes of simmering. Poultry meatballs need to reach 165°F (74°C). If necessary, simmer another minute and check again. See the USDA safe-temperature guidance for ground meats.
- Add the greens. Once the meatballs are at temperature, stir in the escarole and simmer for 2 to 3 minutes, until tender but not limp. In the one-pot version, the pasta should finish at about the same time. Baby spinach needs only about 1 minute.
- Taste the pot. Remove the Parmesan rind. Taste the broth and adjust the salt and black pepper. Cut open the meatball you temperature-checked if you want to see the texture too: the center should look moist and loosely textured, not dense or rubbery.
- Serve while it’s hot. If the pasta was cooked separately, divide it among the bowls first. Ladle over the soup, grate Parmesan or Pecorino over the steam and finish with black pepper.
Recipe Notes
- Chicken or turkey: Use 1 lb (454 g) ground chicken or turkey in place of the beef and pork. Keep the panade, mix lightly and cook to 165°F (74°C).
- Frozen meatballs: Use about 1¼ lb (570 g) mini meatballs and follow the package heating directions.
- Freezing: Freeze without pasta and cook fresh pasta when reheating.
Different acini di pepe brands cook at different speeds, so the one-pot finish is not governed by one fixed clock. Use the pasta’s package timing to decide when it goes in, then let the meatball temperature tell you when the greens can join the pot.

Italian Wedding Soup Cooking Guide
Get the Soup Right
Pasta, Greens & Swaps
Fixes, Leftovers & History
The Spoonful Test: What Good Italian Wedding Soup Looks Like
The easiest way to judge the proportions is to look at a spoonful.
You should be able to pick up a mini meatball, a few pieces of pasta, some finely diced vegetables and a little escarole while still getting broth with the bite. No single ingredient should shove everything else aside.
Keep everything spoon-sized: 1-inch meatballs, small carrot and celery, tiny pasta and chopped greens. The restrained ½ cup of dry pasta matters here too.
A meatball that fills the whole spoon is too large. A pot packed with pasta stops eating like wedding soup. At the other end, mostly broth with an occasional meatball floating through it feels skimpy.
Brothy but busy is the target.

Tender Mini Meatballs Without Browning
Wedding soup meatballs have a slightly awkward job. They have to hold together in the broth, but they should still give easily when you bite into one.
Build a Tender Mixture
Milk-softened breadcrumbs hold moisture inside the meatballs as they cook. That extra moisture matters because these meatballs cook through quickly. Beef brings deeper flavor; pork helps keep them juicy. An even 8-ounce (227-g) split works nicely here.

Mix Less Than You Think
Once the meat goes into the bowl, mix only until the panade, egg, cheese and seasonings disappear evenly through it. Stop there. Working the mixture until it looks smooth gives you firmer meatballs.
Roll them lightly too. Don’t fuss over perfect spheres; roughly even is enough.

Already trying to diagnose dense meatballs? Jump to the tender-vs-tough meatball check.
Making full-size meatballs another day? The same light mixing carries over to the juicy baked meatball recipe, where they brown in the oven instead of poaching in broth.
Keep Them Small
About 2 teaspoons of mixture gives you a meatball around 1 inch (2.5 cm) across. Expect about 55 to 60 from the batch. Smaller than that gets needlessly fiddly; much larger starts crowding the spoon.

Seasoning check: fry a teaspoon-sized piece of the mixture before shaping the batch. It is much easier to fix bland meatballs while the remaining mixture is still in the bowl.
Poach Them Directly
You do not need to brown the meatballs first. Poaching keeps them soft and saves you from browning nearly 60 in batches. Their juices season the broth while they cook.
Do not start counting cooking time the moment the first cold meatball hits the pot. Wait for the broth to come back to a simmer, give them a couple of minutes to set, then stir carefully.
Don’t worry if the broth clouds slightly while the raw meatballs cook. This is soup, not consommé.

Before the greens go in, check one of the larger meatballs in the center so the final simmer does not become guesswork.

Build a Savory Broth Without Making It Heavy
Start with a chicken broth you already like, then keep the aromatics small enough to belong on the same spoon as everything else. Roughly ¼-inch carrot and celery soften quickly without disappearing; cook them with the onion until sweet but not browned, add the garlic briefly, then pour in the broth. As the meatballs poach, they deepen it on their own.

A good bowl should make you want another spoonful of the broth even before you catch a meatball. It should taste full, but still feel light enough that the greens, pasta and meatballs stand out.
Have a Parmesan rind? Drop it in while the soup simmers and fish it out before serving. The Parmesan and Parmigiano-Reggiano guide explains the labels and why those leftover rinds are worth saving.
Taste checkpoint: once the meatballs are cooked, taste the broth before adding the final salt. The meat, cheese and rind may already have done more seasoning than you expect.
Choosing the Pasta and Greens
Acini di Pepe Fits the Soup
Acini di pepe is a classic tiny pasta for Italian-American wedding soup. It scatters through the broth and gives you pasta in almost every bite without turning the soup into a bowl of noodles.
The ½ cup in the ingredient list can look stingy when dry. Trust the pot. Those tiny beads swell considerably as they cook.

No acini di pepe? Use pastina or stelline if you can find them. Ditalini and orzo work too, and pearl couscous is a chewier fallback. When changing shapes, stay close to 3 oz (85 g) dry rather than matching ½ cup exactly; different shapes fill a measuring cup differently.
For leftovers, keep the pasta separate. It continues drinking broth in the refrigerator.

Already dealing with a thick leftover batch? Jump to the pasta-and-broth rescue.
Escarole or Spinach?
Escarole is the first choice here; baby spinach is the easiest substitute.
| Green | Best Use & Timing |
|---|---|
| Escarole | Mildly bitter with enough body to hold up in broth. Add for the final 2–3 minutes. |
| Baby spinach | Mild and very tender. Add for about the final minute. |
| Curly endive | More noticeably bitter but well suited to soup. Add during the final few minutes. |
| Kale | Remove tough stems, chop it smaller and add it earlier; simmer until tender. |
Escarole needs only a short finish in the hot broth. Add it for the final 2–3 minutes and stop while the leaves are tender but the pale ribs still keep a little structure.

Escarole’s slight bitterness balances the beef, pork and Parmesan. If you can only find spinach, use it and make dinner.
Shopping warning: curly endive and Belgian endive are different vegetables. The compact pale heads sold as Belgian endive have a different texture and flavor, so they won’t behave the same way as escarole in this soup.

Serving the soup tonight? No-knead focaccia gives you a crisp olive-oil bottom for dipping and a soft middle for catching the broth.

When Italian Wedding Soup Goes Wrong
The Meatballs Are Tough
The mixture was probably worked or packed too firmly. Mix only until combined, shape lightly and keep the soup at a simmer instead of a hard boil. Very lean meat can also produce a firmer meatball.

The Meatballs Are Falling Apart
Let the broth return to a simmer after the cold meatballs go in, then leave them alone for about 2 minutes before stirring. If the mixture itself feels unusually wet, double-check the breadcrumb and egg quantities.
The Broth Tastes Flat—or Feels Too Heavy
Flat broth may simply need salt. If the salt level is right but the chicken flavor is weak, a small amount of concentrated chicken base can help; brands vary in sodium, so add it cautiously.
For a greasy soup, skim excess fat from the surface. Very fatty sausage, unusually fatty ground meat or an intense bone broth can overwhelm a bowl that should still feel light enough to sip.
The Pasta Swallowed the Broth—or Turned Soft
Tiny pasta keeps hydrating after dinner. Loosen this batch with more chicken broth when reheating. Next time, cook the pasta separately if you know there will be leftovers.

The Escarole Tastes Too Bitter
Escarole naturally has some bitterness, and individual heads vary. Use more of the pale inner leaves, combine it with baby spinach or switch to spinach completely if this head is stronger than you enjoy.
Shortcuts, Swaps & Slow Cooker
The basic structure is fairly forgiving: keep the meatballs spoon-sized, keep the pasta restrained and don’t overwhelm the broth. Within those limits, the soup is flexible.
Frozen Mini Meatballs
Frozen mini meatballs work well here. For this amount of broth, about 1¼ lb (570 g) gives you a similar starting balance, although the exact count will depend on their size. Follow the package directions according to whether the meatballs are raw or already cooked. If all you have are larger cooked meatballs, cut them into spoon-friendly pieces.
Chicken or Turkey Meatballs
Use 1 lb (454 g) ground chicken or turkey in place of the beef and pork. Keep the panade and handle the mixture lightly. Poultry meatballs need to reach 165°F (74°C).
Using Italian Sausage
For a sausage version, replace the 8 oz (227 g) ground pork with 8 oz (227 g) mild Italian sausage. Use bulk sausage or remove it from the casing. Because sausage is already seasoned, omit the ¾ teaspoon salt at first. Cook a small test piece, taste it, then add salt only if needed.
Gluten-Free Italian Wedding Soup
Use certified gluten-free breadcrumbs and a small gluten-free pasta. Check the chicken broth too, along with the label on any packaged sausage or frozen meatballs you use.
Slow Cooker Method
Add the onion, carrots, celery, garlic, broth, Parmesan rind and the shaped meatballs to the slow cooker. Skip the olive oil unless you choose to sauté the vegetables in it first. If using raw frozen meatballs, thaw them completely before they go into the cooker.
Cook for 4–6 hours on LOW or 2–3 hours on HIGH, until the vegetables are tender and a beef-and-pork meatball reaches 160°F (71°C).
To cook the pasta in the slow cooker, switch to HIGH and add the acini di pepe for roughly the final 20–30 minutes. Start checking around 15 minutes because slow cookers vary. Add escarole when the pasta is nearly tender; baby spinach needs only the last few minutes.

Keep the Next Bowl as Good as the First
Shape the Meatballs Ahead
The fiddliest part of this recipe is shaping all those meatballs. Make them a day ahead, cover and refrigerate them, then start the soup when you are ready to cook.
Refrigerating and Reheating
Divide leftovers into shallow containers and refrigerate within 2 hours. Keep them refrigerated for up to 3–4 days. Reheat the portion you need to 165°F (74°C).
Separate pasta makes reheating easiest. If the pasta is already in the soup, add enough chicken broth or water to loosen the bowl as it warms.
Freezing Italian Wedding Soup
Freeze the soup without pasta. The meatballs and broth hold up well; the vegetables will be softer after freezing and thawing. For best quality, use frozen wedding soup within 2–3 months.
Thaw in the refrigerator and reheat gently on the stovetop. Cook fresh pasta while the soup warms. A handful of baby spinach added at the end can bring fresh green color back to a thawed batch.

Why Is It Called Italian Wedding Soup?
Italian wedding soup is not named for a wedding ceremony. The English name is generally traced to southern Italian maritata soups—“married” soups in which ingredients such as meat, greens and broth come together in the same pot.
There is no single version every Italian family makes. Related soups may use different meats, different greens, egg ribbons or no pasta at all.
This recipe follows the familiar Italian-American version built around tiny meatballs, small pasta and leafy greens in chicken broth.
When the soup is in balance, one spoonful tells you: a tender little meatball, pasta, vegetables and greens, all with enough broth around them to keep it unmistakably soup.
