Classic Italian Wedding Soup with Mini Meatballs

When the little meatballs go into the simmering broth, the kitchen starts to smell like garlic, parsley, and Parmesan. I keep them small on purpose: they should fit easily on a soup spoon beside a few grains of pasta, not take over the bowl. That’s what makes this classic Italian wedding soup feel balanced, with tender vegetables and baby spinach in every bite.

The meatballs come together with both ground beef and pork, plus breadcrumbs, egg, and milk to keep them tender. I stir the acini di pepe into the pot after the meatballs have had time to simmer, so the pasta doesn’t crowd them while they cook. A handful of spinach goes in at the end and wilts in just a minute or two. The finished soup is brothy, filling, and full of tiny, savory bites.

Classic Italian Wedding Soup with Mini Meatballs, tender spinach pasta
“

Kitchen Note

Mix the meatball ingredients only until they come together. Once the mixture looks uniform, stop; working it longer makes the little meatballs dense instead of tender.

Save this classic Italian wedding soup for a cozy meal with tiny tender meatballs, acini di pepe, and fresh spinach.

Save to Pinterest

Why the Meatballs Need to Stay Small Enough for a Soup Spoon

Wedding soup is best when you get a little of everything in one spoonful. A 3/4-inch meatball leaves room for the acini di pepe, a piece of carrot, and a few leaves of spinach, so the bowl feels cohesive instead of like broth with a large meatball dropped into it. Keep the meatballs roughly the same size, too. That way, they cook at a similar pace once they’re in the pot.

It’s also worth resisting the urge to make them larger to save shaping time. Bigger meatballs take longer to cook through, and they change the balance of the soup. The small size is what lets the beef-and-pork mixture stay a tender part of the spoonful rather than the whole event. Take a few extra minutes to shape them evenly, and the soup eats the way it should: a little pasta, a little vegetable, and a savory meatball together in the broth.

What Gives These Meatballs Their Tender Bite—and the Broth Its Balance

Classic Italian Wedding Soup with Mini Meatballs, hearty broth bowl
  • Ground beef and pork — The beef brings savory richness, while pork keeps the meatballs from tasting lean or dry. The 85% lean beef is a good fit here; extra-lean beef can make the small meatballs noticeably firmer. If you’re out of pork, replacing it with ground beef works, though the meatballs will taste more beef-forward.
  • Plain breadcrumbs, egg, and milk — Together, these help the meat mixture hold its shape without turning tough. Plain breadcrumbs keep the seasoning in your control; seasoned crumbs bring extra herbs and salt that can shift the flavor. Measure the crumbs loosely rather than packing them into the cup.
  • Parmesan, garlic, and parsley — Parmesan adds a salty, savory note inside the meatballs, while fresh parsley keeps the mixture from tasting heavy. Finely grated Parmesan blends more evenly than coarse shreds. Fresh parsley has a brighter flavor than dried, and the chopped leaves should be small enough to distribute through the meat.
  • Low-sodium chicken broth — It gives the soup a savory base without making the finished pot too salty alongside the Parmesan and seasoned meatballs. Low-sodium broth is useful here because it leaves room for those ingredients to contribute their own salt.
  • Acini di pepe and baby spinach — The tiny pasta matches the scale of the meatballs, and baby spinach softens quickly without needing a long cook. Keep the spinach leaves intact; they wilt down into the broth and add a tender, leafy contrast to the pasta.

Build the Soup in the Order That Keeps Every Bite Tender

Shape the Meatballs Without Packing Them

Put the ground beef, pork, breadcrumbs, Parmesan, egg, milk, parsley, garlic, salt, and pepper in a large bowl. Mix gently just until everything is combined, then shape the mixture into 3/4-inch meatballs. Don’t squeeze them tightly as you roll; a light touch keeps their texture tender. Set them aside while you start the vegetables.

Soften the Vegetables in Olive Oil

Heat the olive oil in a 6-quart pot over medium heat, then add the chopped onion, diced carrots, and diced celery. Cook for 5 to 7 minutes, stirring occasionally, until the vegetables have softened. They should smell sweet and savory, with the onion turning translucent rather than browning. If you see dark spots forming on the bottom, lower the heat.

Simmer the Meatballs in the Broth

Pour in the chicken broth and bring it to a boil over medium-high heat. Reduce the heat to maintain a gentle simmer before carefully adding the meatballs. Let them simmer for 5 minutes; a hard, rolling boil can knock them around before they’ve had time to set. Keep the pot at a calm simmer as the meatballs cook.

Cook the Pasta, Check the Meatballs, and Wilt the Spinach

Stir in the acini di pepe and simmer uncovered for 8 to 10 minutes, until the pasta is tender. Check that a meatball registers 160°F at the center before moving on. Stir in the baby spinach and cook for 1 to 2 minutes, just until the leaves collapse into the hot soup. Serve the soup hot while the pasta still has a little bite.

Small Changes That Still Fit This Pot of Wedding Soup

Use All Beef for a Bolder Meatball

Replace the ground pork with the same amount of ground beef. The meatballs will taste beefier and a little firmer, but the breadcrumbs, egg, and milk still help them hold together and stay tender.

Make the Meatballs Dairy-Free

Leave out the Parmesan and milk, and use plain breadcrumbs that contain no dairy. The meatballs will lose some of their salty, savory depth and tenderness, but the egg and breadcrumbs will still bind the mixture. The rest of the soup stays the same.

Make the Bowls More Brothy

Use half as much acini di pepe for a soup with more broth between the bites. The meatballs and vegetables stay the focus, while the finished pot feels lighter and less pasta-forward.

Storage and Reheating

  • Refrigerator: Store leftovers in a covered container for 3 to 4 days. The acini di pepe will absorb broth and soften as it sits.
  • Freezer: Freeze in airtight containers for up to 2 to 3 months. The pasta and spinach soften after freezing, so for the best texture freeze the soup before adding them, then cook them after thawing.
  • Reheating: Warm gently on the stovetop over medium-low heat, stirring now and then, until the soup reaches 165°F throughout. Avoid a hard boil, which can break up the meatballs and make the pasta mushy.

Questions That Come Up While This Soup Simmer

Can I shape the meatballs ahead of time?+

Yes. Shape them up to a day ahead, cover, and refrigerate until you’re ready to cook. Add them carefully to the simmering broth straight from the refrigerator, and allow extra time if needed to confirm they’re cooked through before adding the pasta.

Why did my meatballs fall apart in the soup?+

A vigorous boil or rough handling can break up meatballs before they firm in the broth. Keep the liquid at a gentle simmer and lower the meatballs in carefully. The egg and breadcrumbs help them hold their shape as they cook.

Can I use a different small pasta instead of acini di pepe?+

You can use another small pasta, but it may not become tender in the same 8 to 10 minutes. Follow the cooking time on its package and check it as it simmers so it doesn’t turn soft before the meatballs are ready.

Can I use frozen spinach instead of baby spinach?+

Yes, but thaw it and squeeze out as much water as you can first. Frozen spinach makes a denser, less leafy finish than fresh baby spinach, so stir it in at the end and heat just until it’s warmed through.

How do I keep the soup from tasting too salty?+

Start with low-sodium chicken broth, as used here, since Parmesan and the meatballs contribute salt too. If the finished soup tastes saltier than you like, serve it with a little more broth rather than adding more seasoning to the pot.

Classic Italian Wedding Soup with Mini Meatballs

Italian wedding soup with mini meatballs combines tender 3/4-inch meatballs, acini di pepe, and baby spinach in a savory chicken broth. The meatballs simmer right in the soup, making this a comforting one-pot dinner.
Prep Time 20 minutes
Cook Time 22 minutes
Total Time 42 minutes
Servings: 6 servings
Course: Dinner
Cuisine: Italian
Calories: 390

Ingredients
  

For the meatballs
  • 0.5 lb ground beef 85% lean
  • 0.5 lb ground pork
  • 0.5 cup plain breadcrumbs
  • 0.33 cup Parmesan cheese grated
  • 1 egg large
  • 2 tbsp milk
  • 2 tbsp fresh parsley chopped
  • 1 cloves garlic minced
  • 0.5 tsp kosher salt
  • 0.25 tsp black pepper
For the soup
  • 1 tbsp olive oil
  • 1 yellow onion small, finely chopped
  • 2 carrots medium, peeled and diced
  • 2 celery ribs diced
  • 8 cups low-sodium chicken broth
  • 1 cup acini di pepe
  • 5 oz baby spinach

Equipment

  • 1 6-quart pot

Method
 

Make the meatballs
  1. In a large bowl, gently mix the ground beef, ground pork, breadcrumbs, Parmesan, egg, milk, parsley, garlic, salt, and pepper until just combined.
  2. Shape the mixture into 3/4-inch meatballs.
Make the soup
  1. Heat the olive oil in a 6-quart pot over medium heat, add the onion, carrots, and celery, and cook for 5 to 7 minutes, stirring occasionally, until softened.
  2. Add the chicken broth and bring to a boil over medium-high heat, then reduce the heat to maintain a gentle simmer.
  3. Carefully add the meatballs and simmer for 5 minutes.
  4. Stir in the acini di pepe and simmer uncovered for 8 to 10 minutes, until the pasta is tender and a meatball registers 160°F at the center.
  5. Stir in the spinach and cook for 1 to 2 minutes, until wilted, then serve hot.

Notes

Gently mix the meatball ingredients just until combined to keep the meatballs tender. Refrigerate leftovers for 3 to 4 days; freezing is possible, though the pasta may soften when reheated. For a gluten-free version, use gluten-free breadcrumbs and pasta.
RECIPE AUTHOR

By Alina

Explore more recipes from this contributor.

Leave a Comment

Recipe Rating