Love this? Pin it for later!
Why This Recipe Works
- Tiny Meatballs, Big Flavor: Each mini meatball is packed with a blend of three meats and aged Parmigiano-Reggiano for maximum taste in every bite
- Double Broth Technique: We build layers of flavor by using both homemade chicken stock and a rich parmesan rind broth
- Perfect Pasta Ratio: Just the right amount of acini di pepe ensures every spoonful has satisfying texture without becoming starchy
- Fresh Greens Method: Escarole is added at the precise moment to maintain its vibrant color and slight crunch
- Make-Ahead Friendly: Components can be prepped separately and assembled for weeknight dinners in minutes
- Freezer Winner: The soup base and meatballs freeze beautifully, making this perfect for meal planning
Ingredients You'll Need
The beauty of this soup lies in the quality of its humble ingredients. Each component plays a crucial role in creating the symphony of flavors that makes Italian wedding soup so beloved across generations. Let's explore what makes each ingredient special and how to select the best for your soup.
For the Mini Meatballs:
Ground Meat Trio: The magic happens with equal parts ground beef, pork, and veal. The beef provides robust flavor, the pork adds richness and moisture, while veal contributes tenderness. If veal isn't available, increase the beef and pork proportionally. Look for meats with 15-20% fat content for juicy meatballs that won't dry out during cooking.
Fresh Breadcrumbs: Skip the store-bought kind and make your own from day-old Italian bread. Simply tear into pieces and pulse in a food processor. Fresh breadcrumbs create lighter, more tender meatballs than their dried counterparts.
Parmigiano-Reggiano: This isn't the time for the powdered stuff in the green container. Aged Parmigiano-Reggiano, grated fresh, adds incredible umami depth. Save the rind for the broth! If budget is tight, Grana Padano is an acceptable substitute.
For the Soup Base:
Homemade Chicken Stock: While store-bought works in a pinch, homemade stock elevates this soup to restaurant quality. Make a big batch and freeze portions. The gelatin from chicken bones gives the broth body and richness.
Escarole: This slightly bitter green is traditional and holds up beautifully in hot soup. The bitterness balances the rich meatballs. If unavailable, curly endive or young kale works, but avoid spinach as it becomes too soft.
Acini di Pepe: These tiny pasta pearls are perfect for soup as they don't overwhelm the delicate meatballs. Israeli couscous or orzo can substitute, but reduce the quantity as they're larger.
How to Make Cozy Italian Wedding Soup With Mini Meatballs
Prepare the Meatball Mixture
In a large bowl, gently combine 8 ounces each of ground beef, pork, and veal. Add 1/2 cup fresh breadcrumbs, 1/2 cup grated Parmigiano-Reggiano, 2 beaten eggs, 2 minced garlic cloves, 2 tablespoons chopped parsley, 1 teaspoon salt, and 1/2 teaspoon each of black pepper and dried oregano. Mix with your hands until just combined—overmixing makes tough meatballs. The mixture should feel slightly sticky but hold together when pressed. Cover and refrigerate for 30 minutes to firm up, making rolling easier.
Roll Perfect Mini Meatballs
Using a small cookie scoop or teaspoon, portion out marble-sized pieces of meat mixture. Roll between damp palms to form smooth balls about 3/4-inch in diameter. Place on a parchment-lined baking sheet. This recipe makes approximately 80 mini meatballs. For uniform cooking, try to keep them similar in size. If you have time, refrigerate the rolled meatballs for 15 minutes—they'll hold together better during browning.
Brown the Meatballs
Heat 2 tablespoons olive oil in a large Dutch oven over medium-high heat. Working in batches to avoid crowding, brown the meatballs on all sides, about 2-3 minutes per side. They don't need to be cooked through—just nicely browned. Transfer to a plate. The fond (brown bits) in the pot will add incredible flavor to your broth. Don't clean the pot!
Build the Flavor Base
In the same pot, sauté 1 diced onion, 2 diced carrots, and 2 diced celery stalks in the rendered fat until softened, about 5 minutes. Add 3 minced garlic cloves and cook for another minute until fragrant. Pour in 1/2 cup dry white wine to deglaze, scraping up all those flavorful brown bits. Let it bubble and reduce by half.
Create the Broth
Add 8 cups homemade chicken stock, a 2-inch piece of Parmigiano-Reggiano rind, 2 bay leaves, and 1 teaspoon dried thyme. Bring to a boil, then reduce to a gentle simmer. The cheese rind will slowly melt, adding incredible umami depth. Simmer for 20 minutes to let flavors meld. Season with salt and pepper to taste, remembering the meatballs will add more saltiness.
Cook the Pasta
Add 3/4 cup acini di pepe to the simmering broth. Cook according to package directions, usually 8-10 minutes, stirring occasionally to prevent sticking. The pasta will absorb some broth and release starch, naturally thickening the soup slightly. Keep the soup at a gentle simmer—boiling can break up the delicate meatballs later.
Return the Meatballs
Gently add the browned meatballs back to the pot. They've finished cooking through during browning, but let them warm in the soup for 5 minutes. This allows them to absorb some broth flavors while releasing their savory juices into the soup. Be careful not to stir too vigorously—you want to keep those perfect little meatballs intact.
Add the Greens
Finally, stir in 6 cups roughly chopped escarole. It will seem like too much, but it wilts down significantly. Cook for just 2-3 minutes until the escarole is tender but still vibrant green. Overcooking makes it bitter and mushy. Remove from heat and discard the bay leaves and any remaining cheese rind pieces.
Finish and Serve
Stir in 1/4 cup chopped fresh parsley and a squeeze of lemon juice for brightness. Ladle into warm bowls and top each serving with extra grated Parmigiano-Reggiano. The soup should be thick with meatballs, pasta, and greens in every spoonful. Serve immediately with crusty Italian bread for sopping up every last drop of the golden broth.
Expert Tips
Temperature Matters
Keep your meat mixture cold when forming meatballs. Warm meat is harder to roll and can become greasy. If it gets too soft, pop it back in the fridge for 10 minutes.
Ice Cream Scoop Hack
Use a small cookie scoop to portion meatballs quickly and evenly. A #100 scoop (about 2 teaspoons) makes the perfect mini size for this soup.
Browning in Batches
Don't crowd the pan when browning meatballs. They need space to brown properly. Work in 3-4 batches, adding more oil if needed between batches.
Freeze Before Browning
Roll all meatballs first, then freeze for 15 minutes before browning. This helps them hold their shape and prevents them from falling apart in the pot.
Brighten at the End
A squeeze of fresh lemon juice added at the end wakes up all the flavors. Don't skip this step—it makes a remarkable difference in the final taste.
Overnight Magic
This soup tastes even better the next day! Make it ahead and gently reheat. You may need to add a splash of stock as the pasta will continue to absorb liquid.
Variations to Try
Vegetarian Version
Replace meatballs with ricotta dumplings (ricotta, egg, parmesan, and flour) and use vegetable broth. Add white beans for protein. The dumplings are delicate and delicious!
Spicy Arrabbiata Style
Add red pepper flakes to the meatball mixture and use spicy Italian sausage in place of some of the ground pork. Add Calabrian chilies to the broth for heat lovers.
Spring Greens Mix
Substitute escarole with a mix of baby spinach, dandelion greens, and arugula. Add fresh peas and asparagus tips for a spring celebration in a bowl.
Turkey Meatball Light
Use ground turkey thigh mixed with grated zucchini for moist meatballs. Add extra herbs like basil and oregano to compensate for the milder meat flavor.
Wedding Soup Casserole
Transform leftovers into a baked casserole. Mix soup with cooked pasta, top with mozzarella and breadcrumbs, bake until golden and bubbly for a new meal.
Seafood Wedding Soup
Replace meatballs with small shrimp and bay scallops. Use fish stock as the base and add fennel fronds for a coastal Italian variation perfect for holidays.
Storage Tips
Refrigerator Storage
Store cooled soup in airtight containers in the refrigerator for up to 4 days. The pasta will continue to absorb liquid, so keep some extra chicken stock on hand for thinning when reheating. Store meatballs separately from the broth if possible—they'll stay firmer and the broth won't become cloudy.
Pro tip: Undercook the pasta slightly if you plan to have leftovers. It will finish cooking during storage and won't become mushy.
Freezer Instructions
This soup freezes beautifully, but with one caveat: freeze the soup base (broth, meatballs, and vegetables) separately from the pasta. Cook the pasta fresh when serving for best texture. Freeze in portion-sized containers for up to 3 months. Thaw overnight in the refrigerator and reheat gently.
For meal prep, freeze individual portions of browned meatballs on a baking sheet, then transfer to freezer bags. They can go directly from freezer to simmering broth—just add 5 extra minutes of cooking time.
Make-Ahead Strategy
Prepare components separately: meatballs can be rolled and frozen raw for up to 2 months. The soup base can be made 3 days ahead and refrigerated. Even better, make a double batch of meatballs and freeze half for an even quicker weeknight dinner next time.
For entertaining, have everything ready except the final assembly. Warm the broth, add meatballs and pasta, and in 10 minutes you have fresh soup for a crowd without any last-minute stress.
Frequently Asked Questions
The name comes from the Italian phrase "minestra maritata," meaning "married soup"—referring to the perfect marriage of flavors between the greens and meat, not an actual wedding! The name evolved as the soup became popular at Italian-American weddings, but traditionally it was simply a way to use leftover meats and bitter greens.
Three key factors: don't overmix the meat (mix just until combined), make sure your mixture is cold (refrigerate before rolling), and don't skip the browning step (it creates a protective crust). Also, resist the urge to add more breadcrumbs—they make meatballs dense. If your mixture is too wet, chill it longer rather than adding more dry ingredients.
Yes! Curly endive (frisée) is the closest substitute. Young kale or Swiss chard works well too—just remove tough stems. Avoid spinach as it becomes too soft and can make the broth murky. If using kale or chard, add them 5 minutes earlier than escarole as they need more time to tenderize.
While the traditional trio creates the best flavor and texture, you can simplify. Use 1 pound ground beef plus 1/2 pound ground pork, or even all beef in a pinch. The key is maintaining some fat content—aim for 15-20% fat for juicy meatballs. Ground turkey thigh works for a lighter version, but add extra herbs and a tablespoon of olive oil for moisture.
The pasta continues absorbing liquid, so serve immediately for best texture. For leftovers, store the soup and pasta separately if possible. When reheating, add warm chicken stock to thin to desired consistency. As a rule, the soup should be brothy enough to easily spoon up, but thick enough that your spoon stands up briefly when placed in the center.
Absolutely! Brown the meatballs first, then add everything except the pasta and escarole to the slow cooker. Cook on low for 6-8 hours or high for 3-4 hours. Add pasta during the last 30 minutes, and escarole during the final 5 minutes. The low and slow method develops incredible flavor, perfect for busy days.
Cozy Italian Wedding Soup With Mini Meatballs
Ingredients
Instructions
- Mix meatballs: Combine all meats, breadcrumbs, cheese, eggs, garlic, parsley, salt, and pepper. Chill 30 minutes.
- Roll mini meatballs: Form marble-sized meatballs and place on parchment-lined sheet.
- Brown meatballs: Heat oil in Dutch oven and brown meatballs in batches. Set aside.
- Build broth: Sauté vegetables, deglaze with wine, add stock and parmesan rind. Simmer 20 minutes.
- Add pasta: Stir in acini di pepe and cook 8-10 minutes until tender.
- Finish soup: Return meatballs to pot, add escarole, cook 3 minutes until wilted. Serve with extra cheese.
Recipe Notes
For best results, use homemade chicken stock and real Parmigiano-Reggiano. The soup thickens as it sits—thin with additional stock when reheating. Freeze meatballs and broth separately from pasta for best texture.