Olive Garden Italian Wedding Soup Copycat Recipe
This Olive Garden Italian wedding soup copycat brings the restaurant’s cozy, herb-flecked broth straight to your kitchen in about 45 minutes.
It’s the kind of soup that works on a Tuesday night when you want something real on the table without a lot of fuss.

Why I Love This Recipe
The broth here is genuinely savory, not watery, because you build it with good chicken stock and let the meatballs simmer right in it so everything takes on the same flavor.
The tiny meatballs stay tender, and the acini di pepe pasta gives the soup a little body without making it heavy.
This is the version I keep coming back to when the weather turns cold and I want something that actually satisfies.
Recipe Ingredients

- 1 lb ground beef and pork blend (or all pork) – The fat in pork keeps the meatballs tender; all-beef works but the texture is slightly firmer
- 1/3 cup plain breadcrumbs – Helps bind the meatballs and keeps them from getting dense
- 1 large egg – Holds the meat mixture together
- 3 cloves garlic, minced – Divided: 2 cloves go in the meatballs, 1 in the broth
- 2 tbsp fresh flat-leaf parsley, finely chopped – Divided between meatballs and garnish
- 1/4 cup Parmesan, finely grated – Goes into the meatball mix; more for serving
- 1/2 tsp salt – For the meatball mixture
- 1/4 tsp black pepper – For the meatball mixture
- 1 tbsp olive oil – For sweating the aromatics
- 1 medium yellow onion, finely diced – Builds the savory base of the broth
- 3 medium carrots, peeled and sliced into thin coins – Adds a little sweetness and color
- 3 stalks celery, thinly sliced – Classic soup base; don’t skip it
- 8 cups low-sodium chicken broth – Use the best quality you can find; it’s most of the soup
- 2/3 cup acini di pepe pasta – The small round pasta Olive Garden uses; orzo works as a backup
- 3 cups fresh baby spinach, loosely packed – Stirred in at the end so it stays bright green
Variations / Substitutions
- Ground turkey instead of beef/pork – The meatballs will be slightly leaner and a bit less rich, but still hold together well.
- Gluten-free breadcrumbs – Swap 1:1 and the meatballs stay tender with no noticeable difference.
- Orzo or ditalini instead of acini di pepe – Both work fine; orzo cooks a bit faster, so check it at 6 minutes.
- Kale instead of spinach – Stir it in 3 to 4 minutes before serving rather than 1 minute, since kale needs more time to soften.
- Extra heat – Add 1/4 tsp red pepper flakes to the meatball mixture or the broth, wherever you want the warmth to land.
- Dairy-free – Leave the Parmesan out of the meatballs and use a splash of nutritional yeast in the broth to get a little of that savory depth back.
If you like hearty soups with small pasta and greens, Pasta e Fagioli is worth making next.
How To Make Italian Wedding Soup
Step 1: Roll the Meatballs

In a large bowl, combine the 1 lb ground meat, 1/3 cup breadcrumbs, 1 large egg, 2 cloves minced garlic, 1 tbsp of the parsley, 1/4 cup Parmesan, 1/2 tsp salt, and 1/4 tsp black pepper. Mix with your hands just until everything comes together, about 30 seconds. Overworking the meat makes the meatballs tough, so stop as soon as you don’t see streaks of egg.
Roll the mixture into balls about 3/4 inch across, roughly the size of a large grape. You should get somewhere between 40 and 50 meatballs. Set them on a plate or sheet pan in a single layer while you build the soup.
Step 2: Sweat the Vegetables

Heat the 1 tbsp olive oil in a large Dutch oven or heavy pot over medium heat. Add the diced onion, sliced carrots, and sliced celery. Cook, stirring occasionally, for about 6 minutes until the onion is soft and translucent. Add the remaining 1 clove of minced garlic and stir for another 30 seconds until fragrant.
The vegetables won’t have any color on them, and that’s fine. You’re not looking for browning here. What you want is soft, sweet aromatics that melt into the broth.
Step 3: Simmer the Meatballs in Broth

Pour in the 8 cups chicken broth and bring it to a gentle boil over medium-high heat, about 5 minutes. Once the broth is boiling, carefully drop in all the raw meatballs one at a time. Reduce the heat to medium-low and let everything simmer for 10 minutes. The meatballs will be cooked through and will have given the broth a noticeable savory depth by the end.
Don’t stir aggressively in the first couple of minutes, or the meatballs can break apart before they firm up. A gentle swirl of the pot is enough to keep them from sticking to the bottom.
Step 4: Cook the Pasta in the Soup

Add the 2/3 cup acini di pepe directly to the simmering broth. Cook for 8 to 10 minutes, stirring every couple of minutes, until the pasta is just tender. Taste a few pieces before pulling it off the heat; it should have a little bite left, not be chalky but not fully soft either.
The pasta will continue to absorb liquid as the soup sits, so if you’re making this ahead, cook the pasta in a separate pot and stir it in when you serve. That way the broth stays loose and the pasta stays the right texture.
Step 5: Wilt the Spinach and Serve

Turn the heat to low and stir in the 3 cups baby spinach. Let it sit for about 1 minute until the leaves are wilted and bright green. Ladle the soup into bowls and finish each one with a little extra grated Parmesan and a pinch of the remaining 1 tbsp fresh parsley on top.
Recipe Tips
- Use a small cookie scoop for the meatballs. A 1-tablespoon scoop keeps them all close to the same size, which means they cook at the same rate.
- Season your broth before adding pasta. Take a spoonful of the broth after the meatballs have simmered and taste it. Adjust salt here, not at the end, so the pasta cooks in properly seasoned liquid.
- Don’t rinse the pasta. The surface starch on the acini di pepe helps the broth cling to each piece and thickens it very slightly.
- Fresh Parmesan makes a real difference at the end. The pre-grated kind in a canister doesn’t melt the same way into the hot soup. A quick grating over each bowl is worth it.
Bake times by pasta shape and pot size:
| Pasta Shape | Pot Size | Simmer Time |
|---|---|---|
| Acini di pepe | 6 qt or larger | 8 to 10 mins |
| Orzo | 6 qt or larger | 6 to 8 mins |
| Ditalini | 6 qt or larger | 10 to 12 mins |
How To Store
- Refrigerate – Store the soup in an airtight container for up to 4 days. The pasta will absorb quite a bit of liquid as it sits, so the soup will be thicker the next day. Add a splash of broth when reheating to loosen it.
- Reheating – Warm on the stovetop over medium-low heat for about 5 minutes, stirring gently so the meatballs don’t break apart. Microwave works too; 2 minutes on medium power, stir, then 1 more minute.
What To Serve With Italian Wedding Soup
A thick slice of crusty Italian bread or a soft breadstick is the natural partner here because you want something to soak up the broth. A simple green salad with a sharp vinaigrette cuts through the richness of the meatballs and keeps the meal from feeling heavy. If you want to make it a full restaurant-style spread, a Caesar salad with plenty of Parmesan works well alongside the soup’s mild, herb-forward flavors.
Frequently Asked Questions
Can I make the meatballs ahead of time?
Yes. Roll and refrigerate them up to 24 hours before cooking. You can also freeze them raw on a sheet pan, then transfer to a bag, and drop them frozen straight into the simmering broth, adding about 3 extra minutes to the cooking time.
Why is it called Italian wedding soup?
The name comes from the Italian phrase “minestra maritata,” which refers to the way greens and meat go well together in a broth, not an actual wedding. The “wedding” is the pairing of ingredients, not a ceremony.
Can I use frozen spinach instead of fresh?
Yes, but thaw it fully and squeeze out as much water as possible first. Add it the same way as fresh, but it will only need about 30 seconds to warm through since it’s already soft.
Can I make this soup in a slow cooker?
You can, with one caveat: cook the pasta separately and stir it in at the end. Add the browned aromatics, meatballs, and broth to the slow cooker and cook on low for 4 to 5 hours or high for 2 to 3 hours.
—

Ingredients
Method
- Combine the ground meat, breadcrumbs, egg, 2 cloves minced garlic, 1 tbsp parsley, Parmesan, salt, and pepper. Mix just until combined, then roll into 3/4-inch meatballs and set aside.
- Heat the olive oil in a large pot over medium heat. Cook the onion, carrots, and celery for 6 minutes until softened. Add the remaining 1 clove garlic and stir for 30 seconds.
- Add the chicken broth and bring to a boil over medium-high heat. Drop in the meatballs and reduce to medium-low. Simmer for 10 minutes.
- Add the acini di pepe and cook for 8 to 10 minutes, stirring occasionally, until just tender.
- Reduce heat to low. Stir in the baby spinach and let it wilt for 1 minute. Ladle into bowls and top with extra Parmesan and the remaining 1 tbsp fresh parsley.
