Classic Italian wedding soup made from scratch with tender beef and pork meatballs, plenty of fresh vegetables, and tiny pasta simmered in a rich, savory broth. It’s cozy, nourishing, and perfect for chilly days or make-ahead lunches.
Course Dinner, lunch
Cuisine Italian, Italian American
Keyword Italian Wedding Soup, Italian Wedding Soup recipe
In a large bowl, combine ground beef, ground pork, breadcrumbs, milk, parsley, garlic, Parmesan, egg, salt, and black pepper to taste.
Mix gently with your hands until just combined. If the mixture feels too dry, add another tablespoon of milk.
Roll into small meatballs, about ¾ inch in diameter (you should get 30–35 meatballs). Keeping them uniform in size helps them cook evenly.
Heat 2 tablespoons of olive oil in a large skillet over medium heat.
Working in batches, brown the meatballs on all sides (about 5–7 minutes total). They don’t need to cook through—just get a nice sear.
Transfer to a plate and set aside.
Make the Soup
In a large soup pot or Dutch oven, heat 2 tablespoons of olive oil over medium heat.
Add the carrots, celery, and onion. Sauté for 6–8 minutes until softened.
Stir in the garlic and parsley, and cook for another 1–2 minutes until fragrant.
Pour in the chicken stock and add the Parmesan rind (if using). Bring to a boil.
Add the meatballs and reduce to a simmer. Cook uncovered for 10 minutes.
Stir in the pasta and simmer for another 8–10 minutes, or until the pasta is al dente and meatballs are cooked through. Note: the pasta will continue to absorb liquid as the soup sits, so if making ahead, you can cook the pasta separately and add it just before serving.
Add the chopped spinach and stir until wilted, about 2–3 minutes.
Remove and discard the Parmesan rind. Taste and season with salt and pepper as needed (start with about ½ teaspoon salt and adjust to taste).
Serve
Ladle soup into bowls and top with freshly grated Parmesan.
Serve with crusty bread or warm rolls for a complete meal.
Video
Notes
Erren’s Top Tips
To Make ahead, Make the soup base with meatballs, veggies, and broth ahead of time, but don’t add the pasta. When you’re ready to serve, simmer the pasta right in the hot broth until al dente.
Don’t overmix the meatballs. Mix just until combined so they stay tender instead of tough.
Roll meatballs small. Aim for about ¾-inch each so they cook evenly and fit perfectly on a spoon.
Brown, don’t cook through. Just sear them for color and flavor — the broth will finish the cooking.
Use a Parmesan rind. It melts into the broth, giving you that rich, almost creamy depth.
Cook pasta right before serving. If making ahead, cook the pasta separately so it doesn’t soak up all the broth.
Taste and season last. The Parmesan and meatballs add salt, so wait until the very end to adjust.
Variations & Add-Ins
Swap spinach for kale, escarole, or Swiss chard.
Add a splash of lemon juice at the end for brightness.
Stir in a handful of fresh dill or basil for a flavor twist.
Make it heartier with cannellini beans or chickpeas added to the broth.
For spice lovers, add a pinch of red pepper flakes with the garlic.
Storage & Freezing
Refrigerator: Store cooled soup (without pasta) in an airtight container up to 4 days. Cook pasta fresh and stir it in before serving.
Freezer: Freeze the soup base (no pasta) in airtight containers or freezer bags for up to 2 months. Add freshly cooked pasta when reheating.
Reheating: Warm gently on the stovetop, adding extra broth if needed since the pasta soaks up liquid.