You’ve probably had it from a can. Maybe at a diner. Maybe at someone’s grandma’s house where it tasted completely different and you couldn’t figure out why.
This is the “grandma’s house” version.
Italian wedding soup is one of those dishes that sounds fancy but is genuinely weeknight-friendly. Tiny meatballs, tender greens, pasta, and a rich broth that tastes like it’s been going for hours. (It hasn’t. That’s the secret.)
And no, despite the name, it has nothing to do with weddings. 👀 The Italian phrase minestra maritata means “married soup” — referring to how well the greens and meat pair together. A food myth busted before you’ve even started cooking.
What You’ll Need
For the Meatballs:
- 1 lb ground beef (or a mix of beef and pork)
- ¼ cup breadcrumbs (plain or Italian-seasoned)
- ¼ cup freshly grated Parmesan cheese
- 1 large egg
- 2 garlic cloves, minced
- 1 tsp dried Italian seasoning
- ½ tsp salt
- ¼ tsp black pepper
- 2 tbsp fresh parsley, finely chopped
For the Soup:
- 1 tbsp olive oil
- 1 medium yellow onion, diced
- 3 garlic cloves, minced
- 3 medium carrots, sliced into coins
- 3 celery stalks, sliced
- 8 cups chicken broth (low-sodium preferred)
- 1 cup acini di pepe pasta (or orzo, ditalini, or small shells)
- 4 cups fresh baby spinach (or escarole, roughly chopped)
- ½ cup freshly grated Parmesan cheese (for serving)
- Salt and black pepper to taste
Tools You’ll Need

- Large Dutch oven or heavy-bottomed soup pot
- Medium mixing bowl
- Baking sheet lined with parchment paper
- Small cookie scoop or teaspoon (for uniform meatballs)
- Wooden spoon or silicone spatula
- Ladle
- Sharp knife and cutting board
- Fine grater or microplane (for Parmesan)
Pro Tips
These are the things that make a real difference:
- Roll your meatballs small. Like, marble-small. They cook faster, stay tender, and fit perfectly on a spoon. Big meatballs in soup are a texture problem waiting to happen.
- Bake the meatballs first. Don’t drop raw meatballs into the broth. Baking them at 400°F for 15 minutes gives them structure and seals in flavor. Your broth stays clear, not greasy.
- Cook the pasta separately. If you cook acini di pepe directly in the soup, it’ll absorb all the broth by tomorrow. Cook it in salted water on the side and add it per bowl. Your leftovers will thank you.
- Use freshly grated Parmesan. The stuff in the green can will technically work, but fresh Parmesan melts into the broth in a way the pre-grated kind just doesn’t. Small detail, big difference.
- Add greens right at the end. Spinach wilts in about 60 seconds. Escarole needs 2-3 minutes. Either way, don’t add them early or you’ll end up with something resembling swamp water.
Substitutions and Variations
No two kitchens are stocked the same. Here’s what you can swap:
| Ingredient | Substitution |
|---|---|
| Ground beef | Ground turkey, chicken, or pork |
| Acini di pepe | Orzo, ditalini, small shells, or fregola |
| Baby spinach | Escarole, kale (chopped small), or Swiss chard |
| Chicken broth | Vegetable broth (for a lighter flavor) |
| Parmesan | Pecorino Romano for a sharper bite |
| Breadcrumbs | Panko, or a soaked piece of white bread |
Want it gluten-free? Use gluten-free pasta and GF breadcrumbs in the meatballs. The rest of the recipe is naturally GF.
Dairy-free? Skip the Parmesan in the meatballs and use nutritional yeast as a topping. It’s not identical, but it works.
Make-Ahead Tips
This soup is genuinely great for planning ahead:
- Meatballs: Make and bake them up to 3 days in advance. Store in the fridge or freeze for up to 3 months.
- Soup base: The broth and vegetables can be made a day ahead and stored in the fridge. Reheat, then add meatballs, pasta, and greens fresh when serving.
- Full soup (minus pasta): Make the whole thing except the pasta, refrigerate, and add freshly cooked pasta per serving each time you reheat.
The make-ahead meatball tip alone will make you feel like you have your life together on a Wednesday. 🙌
The Instructions
Step 1: Make the Meatballs
Preheat your oven to 400°F (200°C).
In a medium bowl, combine the ground beef, breadcrumbs, Parmesan, egg, minced garlic, Italian seasoning, salt, pepper, and parsley.
Mix everything together with your hands until just combined. Don’t overwork it or the meatballs will turn dense and rubbery.
Scoop into tiny balls (about 1 teaspoon each) and place on your parchment-lined baking sheet.
Bake for 14-16 minutes until cooked through and lightly golden on the outside. Set aside.
Step 2: Build the Soup Base
Heat olive oil in your Dutch oven over medium heat.
Add the diced onion and cook for 4-5 minutes until softened and slightly translucent.
Add the garlic, carrots, and celery. Cook for another 3-4 minutes, stirring occasionally.
Pour in the chicken broth and bring the whole thing to a low boil.
Step 3: Simmer
Reduce heat to medium-low and let the soup simmer for 10-12 minutes until the carrots and celery are tender.
Season with salt and pepper to taste. This step matters — bland broth means bland soup no matter how good your meatballs are.
Step 4: Cook the Pasta
While the soup simmers, cook your acini di pepe in a separate pot of salted boiling water according to package instructions. Drain and set aside.
Step 5: Bring It All Together
Add the baked meatballs to the soup and let them warm through for about 2 minutes.
Stir in the spinach and cook for 1-2 minutes until wilted.
Step 6: Serve
Ladle the soup into bowls, add a scoop of pasta to each one, and finish with a generous handful of freshly grated Parmesan.
That’s it. Genuinely one of the most satisfying soups you’ll make.
Additional Details
Nutritional Breakdown (Per Serving, Approx.)
| Nutrient | Amount |
|---|---|
| Calories | ~320 kcal |
| Protein | ~24g |
| Carbohydrates | ~22g |
| Fat | ~14g |
| Fiber | ~3g |
| Sodium | ~780mg (varies with broth) |
Based on 6 servings with beef meatballs and Parmesan topping.
Meal Pairings
- Crusty sourdough or ciabatta for dunking (non-negotiable, honestly)
- A simple arugula salad with lemon and olive oil
- Garlic bread if you want the full Italian-American experience
Cooking Time Breakdown
| Task | Time |
|---|---|
| Meatball prep + bake | 25 minutes |
| Soup base | 20 minutes |
| Pasta cooking | 8 minutes |
| Final assembly | 5 minutes |
| Total | ~55 minutes |
Leftovers and Storage
- Fridge: Store the soup and pasta separately in airtight containers for up to 4 days. If you store them together, the pasta absorbs the broth overnight and becomes unpleasant.
- Freezer: Freeze the soup base without pasta or greens for up to 3 months. Add fresh pasta and greens when you reheat.
- Reheating: Warm over medium heat on the stovetop, adding a splash of broth if it’s thickened. Microwave works too — just stir halfway through.
Fun fact: This soup is almost better the next day once the flavors have had time to settle. Make a big batch on Sunday and you’ve got the easiest lunches of the week.
FAQ
What does “wedding soup” actually mean? Nothing to do with weddings! It’s a translation of minestra maritata — Italian for “married soup,” meaning the marriage of greens and meat in the broth. The name stuck when it came to the U.S. and people assumed the rest.
Can I use frozen spinach? Yes, but thaw it completely and squeeze out as much water as possible before adding it. Otherwise it waters down your broth.
What pasta is traditional? Acini di pepe is the classic choice — tiny beads that sit perfectly in a spoon of soup. Orzo is the most common substitute and works just as well.
Can I make this in a slow cooker? You can. Bake the meatballs first, then add everything except pasta and greens to the slow cooker and cook on low for 6-8 hours or high for 3-4 hours. Add pasta (cooked separately) and greens in the last 15 minutes.
My broth looks cloudy. Did I do something wrong? Probably added the meatballs raw. Baking them first keeps the broth clear and clean-tasting. If it’s already happened, it’s not ruined — it’ll still taste great, just a little cloudier than ideal.
How do I keep the meatballs from falling apart? Make sure you have enough binder (the egg + breadcrumbs) and don’t overwork the meat. Chilling the formed meatballs for 15-20 minutes before baking also helps them hold their shape.
Is this authentic Italian? It has Italian roots, but what’s eaten in Italian-American households today is an evolved version. Traditional Italian minestra maritata uses escarole and a variety of meats. Either version is worth making.
Wrapping Up
This is one of those recipes that looks impressive, feeds a crowd, and doesn’t actually take much effort to pull off.
The meatballs are the part people always comment on. Make them small, bake them first, and don’t skip the fresh Parmesan. Those three things alone will make your version taste completely different from anything out of a can.
Give it a try this week and come back to leave a comment. Did you swap the greens? Use a different pasta? Make it in the slow cooker?
Drop your questions below too. If you ran into a snag somewhere in the process, chances are someone else will too, and your comment might be exactly what helps them.