I didn’t grow up eating Italian Wedding Soup, so the first time I heard the name, I thought it was something people actually served at weddings in Italy. Turns out, that’s not quite right—the “marriage” part actually refers to how well the ingredients go together, especially the meatballs and the greens.
This soup showed up in my life when a friend brought it over after my second kid was born. I was tired, hungry, and living on frozen pizzas, and this soup was exactly what I needed. It’s got tiny meatballs, tender pasta, and spinach all swimming in a chicken broth that actually tastes like something. Now it’s one of those recipes I make when I want something that feels like a hug in a bowl but doesn’t require me to stand in the kitchen all day.

Why You’ll Love This Italian Wedding Soup
- Ready in under an hour – This comforting soup comes together in just 40-60 minutes, making it perfect for busy weeknights when you want something homemade without spending hours in the kitchen.
- Hearty and satisfying – The combination of tender meatballs, tiny pasta, and fresh vegetables creates a filling meal-in-a-bowl that’ll keep everyone at the table happy.
- Packed with flavor – Fresh herbs, parmesan cheese, and a savory chicken broth base make every spoonful taste like it came from an Italian grandmother’s kitchen.
- Great for meal prep – This soup stores well in the fridge and tastes even better the next day, so you can make a big batch and enjoy it throughout the week.
What Kind of Ground Meat Should I Use?
This recipe calls for a combination of ground beef and ground pork, which is traditional for Italian wedding soup meatballs. The beef gives you that classic meaty flavor while the pork adds extra moisture and a bit of sweetness to balance things out. If you can only find one or the other at the store, you can use all beef or all pork and the soup will still turn out great. For the best texture and flavor, I’d recommend using ground beef that’s 80/20 or 85/15 rather than the super lean stuff, since a little fat helps keep those meatballs tender. You could also swap in ground turkey or chicken if you prefer a lighter option, though you might want to add a touch more olive oil to the meatball mixture to keep them from drying out.

Options for Substitutions
This soup is pretty forgiving when it comes to swapping ingredients:
- Ground meat: You can use all beef or all pork instead of the mix, or try ground turkey for a lighter version. Ground chicken works too, though the meatballs will be a bit milder in flavor.
- Bread crumbs: Crushed crackers, panko, or even rolled oats can replace regular bread crumbs. If you’re gluten-free, almond flour works but use a bit less since it’s denser.
- Acini di pepe: This tiny pasta is traditional, but orzo, ditalini, or even broken-up angel hair pasta make good substitutes. Cook time might vary slightly depending on what you use.
- Spinach: Escarole is actually the more traditional choice here, but kale, Swiss chard, or even chopped romaine lettuce work well. Just add heartier greens a few minutes earlier so they have time to soften.
- Chicken broth: Vegetable broth works if you want to keep it lighter, or use beef broth for a richer soup. You can also mix half broth and half water if you’re running low.
- Fresh parsley: Dried parsley works in a pinch – just use about 1 tablespoon instead of 1/4 cup fresh.
Watch Out for These Mistakes While Cooking
The biggest mistake when making Italian wedding soup is overcooking the meatballs, which happens when you brown them completely in the pan – remember, they only need 4 minutes to get some color since they’ll finish cooking in the broth.
Another common error is adding the pasta too early, which can turn your acini di pepe into mush, so make sure to add it at the same time as the meatballs and stick to the 10-minute simmer time.
Don’t skip browning the meatballs in batches if needed, as overcrowding the pan will steam them instead of creating that nice crust, and always use that same pot for the vegetables to pick up all those tasty bits from the bottom.
Finally, add the spinach during the very last minute of cooking – it wilts quickly and keeping it bright green makes your soup look and taste fresher.

What to Serve With Italian Wedding Soup?
Italian wedding soup is pretty hearty on its own with the meatballs, pasta, and veggies, but I always like to serve it with some crusty bread or garlic bread on the side for dipping. A simple Caesar salad makes a great pairing too, since the crisp romaine and tangy dressing balance out the richness of the soup. If you want to make it more of a meal, you could add a simple caprese salad with fresh mozzarella, tomatoes, and basil, or even just some focaccia bread with olive oil for dipping. For a lighter option, a mixed green salad with Italian vinaigrette keeps things fresh without weighing you down.
Storage Instructions
Store: Keep your Italian wedding soup in an airtight container in the fridge for up to 4 days. The flavors actually get better as it sits, making it perfect for meal prep. Just know that the pasta will soak up more broth over time, so you might want to add a splash of chicken broth when reheating.
Freeze: This soup freezes great for up to 3 months, but I recommend freezing it without the pasta if you can. The acini di pepe can get mushy when frozen and reheated. If you’ve already added the pasta, it’ll still taste good, just with a softer texture.
Reheat: Warm it up on the stovetop over medium heat until heated through, stirring occasionally. If you froze it without pasta, just cook some fresh acini di pepe and stir it in. You can also microwave individual portions, but add a little extra broth since the pasta absorbs liquid as it sits.
| Preparation Time | 20-30 minutes |
| Cooking Time | 20-30 minutes |
| Total Time | 40-60 minutes |
| Level of Difficulty | Medium |
| Servings | 6 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 2000-2200
- Protein: 110-125 g
- Fat: 110-125 g
- Carbohydrates: 120-135 g
Ingredients
For the meatballs:
- 10 oz ground beef
- 10 oz ground pork
- 3/4 cup bread crumbs (I use Progresso Italian Style for better seasoning)
- 1/4 cup parsley
- 2 tsp oregano
- 1/2 cup parmesan
- 1 egg
- 1 1/4 tsp salt
- 1/2 tsp pepper
- 1 tbsp olive oil (I prefer Bertolli Extra Virgin for roasting)
For the soup base:
- 1 tbsp olive oil
- 1 1/2 cups carrots (diced into 1/4-inch pieces for even cooking)
- 1 1/2 cups onion (finely diced, about 1/4-inch)
- 1 cup celery
- 4 garlic cloves
- 70 fl oz chicken broth (I always use Swanson for a consistent savory base)
- 1 1/4 cups acini di pepe pasta
- 6 oz spinach (roughly chopped to fit perfectly on a soup spoon)
- 1/4 tsp ground nutmeg
- salt
- pepper
For serving:
- parmesan
Step 1: Prepare Mise en Place and Form Meatballs
- 10 oz ground beef
- 10 oz ground pork
- 3/4 cup Italian bread crumbs
- 1/4 cup parsley
- 2 tsp oregano
- 1/2 cup parmesan
- 1 egg
- 1 1/4 tsp salt
- 1/2 tsp pepper
- 1 1/2 cups carrots, diced
- 1 1/2 cups onion, finely diced
- 1 cup celery, diced
- 4 garlic cloves, minced
- 6 oz spinach, roughly chopped
While you gather your ingredients, dice the carrots into 1/4-inch pieces, finely dice the onion into 1/4-inch pieces, dice the celery, mince the garlic cloves, and roughly chop the spinach.
In a large bowl, combine the ground beef, ground pork, bread crumbs, parsley, oregano, parmesan, egg, salt, and pepper until just mixed—don’t overwork the mixture or the meatballs will become dense.
Form the mixture into 1-inch meatballs and set them on a plate.
Step 2: Brown the Meatballs
- 1 tbsp olive oil
- meatballs from Step 1
Heat 1 tablespoon of olive oil in a large heavy-bottomed pot or Dutch oven over medium-high heat.
Once shimmering, carefully add the meatballs and brown them on all sides for about 4 minutes total, working in batches if needed to avoid crowding the pan—this develops a golden crust that adds depth to the broth.
Transfer the browned meatballs to a clean plate and set aside.
I like using a heavy pot here because it retains heat well and browns the meatballs evenly.
Step 3: Build the Aromatic Base
- 1 1/2 cups carrots, diced
- 1 1/2 cups onion, finely diced
- 1 cup celery, diced
- 4 garlic cloves, minced
In the same pot with the rendered fat from the meatballs, add the diced carrots, onions, and celery.
Sauté over medium heat for 6–8 minutes, stirring occasionally, until the vegetables begin to soften and the onions turn translucent.
Add the minced garlic and cook for 1 more minute until fragrant.
This aromatic base, called mirepoix in French cooking, builds the foundational flavors of your soup.
Step 4: Build and Simmer the Broth
- 70 fl oz chicken broth
- 1 1/4 cups acini di pepe pasta
- meatballs from Step 2
- 1/4 tsp ground nutmeg
Pour in the chicken broth and bring to a rolling boil over medium-high heat.
Once boiling, add the acini di pepe pasta and return the browned meatballs from Step 2 to the pot.
Reduce the heat to medium and simmer covered for 10 minutes, stirring occasionally, until the pasta is tender and the meatballs are cooked through.
I always use quality broth as the foundation because it really shines in this simple, broth-forward soup.
Step 5: Finish with Spinach and Season
- 6 oz spinach, roughly chopped
- salt and pepper to taste
During the last minute of simmering, stir in the roughly chopped spinach from Step 1 and let it wilt into the soup.
Taste the broth and adjust seasoning with salt and pepper as needed.
The spinach wilts quickly and adds a fresh, vibrant note that balances the richness of the broth and meatballs.
Step 6: Serve and Garnish
- parmesan for garnish
Ladle the soup into bowls and top each serving with a generous handful of freshly grated parmesan cheese.
Serve immediately while the soup is hot and the spinach is bright green.

Easy Italian Wedding Soup
Ingredients
For the meatballs::
- 10 oz ground beef
- 10 oz ground pork
- 3/4 cup bread crumbs (I use Progresso Italian Style for better seasoning)
- 1/4 cup parsley
- 2 tsp oregano
- 1/2 cup parmesan
- 1 egg
- 1 1/4 tsp salt
- 1/2 tsp pepper
- 1 tbsp olive oil (I prefer Bertolli Extra Virgin for roasting)
For the soup base::
- 1 tbsp olive oil
- 1 1/2 cups carrots (diced into 1/4-inch pieces for even cooking)
- 1 1/2 cups onion (finely diced, about 1/4-inch)
- 1 cup celery
- 4 garlic cloves
- 70 fl oz chicken broth (I always use Swanson for a consistent savory base)
- 1 1/4 cups acini di pepe pasta
- 6 oz spinach (roughly chopped to fit perfectly on a soup spoon)
- 1/4 tsp ground nutmeg
- salt
- pepper
For serving::
- parmesan
Instructions
- While you gather your ingredients, dice the carrots into 1/4-inch pieces, finely dice the onion into 1/4-inch pieces, dice the celery, mince the garlic cloves, and roughly chop the spinach. In a large bowl, combine the ground beef, ground pork, bread crumbs, parsley, oregano, parmesan, egg, salt, and pepper until just mixed—don't overwork the mixture or the meatballs will become dense. Form the mixture into 1-inch meatballs and set them on a plate.
- Heat 1 tablespoon of olive oil in a large heavy-bottomed pot or Dutch oven over medium-high heat. Once shimmering, carefully add the meatballs and brown them on all sides for about 4 minutes total, working in batches if needed to avoid crowding the pan—this develops a golden crust that adds depth to the broth. Transfer the browned meatballs to a clean plate and set aside. I like using a heavy pot here because it retains heat well and browns the meatballs evenly.
- In the same pot with the rendered fat from the meatballs, add the diced carrots, onions, and celery. Sauté over medium heat for 6–8 minutes, stirring occasionally, until the vegetables begin to soften and the onions turn translucent. Add the minced garlic and cook for 1 more minute until fragrant. This aromatic base, called mirepoix in French cooking, builds the foundational flavors of your soup.
- Pour in the chicken broth and bring to a rolling boil over medium-high heat. Once boiling, add the acini di pepe pasta and return the browned meatballs from Step 2 to the pot. Reduce the heat to medium and simmer covered for 10 minutes, stirring occasionally, until the pasta is tender and the meatballs are cooked through. I always use quality broth as the foundation because it really shines in this simple, broth-forward soup.
- During the last minute of simmering, stir in the roughly chopped spinach from Step 1 and let it wilt into the soup. Taste the broth and adjust seasoning with salt and pepper as needed. The spinach wilts quickly and adds a fresh, vibrant note that balances the richness of the broth and meatballs.
- Ladle the soup into bowls and top each serving with a generous handful of freshly grated parmesan cheese. Serve immediately while the soup is hot and the spinach is bright green.