
This classic Italian wedding soup is a comforting and hearty bowl filled with tender meatballs, fresh vegetables, and delicate pasta swimming in a savory broth. Perfect for chilly evenings or anytime you need a soothing dish that feels like a warm embrace.
I first made this soup for a family dinner and it quickly became a beloved tradition. The blend of fresh ingredients and simple cooking steps make it a recipe I keep returning to when I want something both nourishing and heartfelt.
Ingredients You Need
- Ground beef and ground pork: a balanced mix that keeps the meatballs juicy and flavorful. Choose fresh meat with a deep red color.
- Breadcrumbs: these help bind the meatballs while keeping them tender. Use plain or Italian seasoned depending on your taste.
- Grated Parmesan cheese: adds a nutty, savory note to the meatballs. Look for freshly grated for best impact.
- Chopped fresh parsley: brightens the meatball mixture and brings a touch of herbaceousness. Flat-leaf parsley is preferred for flavor.
- Garlic powder and onion powder: provide a subtle depth of flavor without overpowering the meatballs.
- Salt and freshly ground black pepper: essential seasonings to highlight all ingredients.
- Olive oil: for browning the meatballs and sautéing vegetables. Use extra virgin for a rich aroma.
- Chopped onions, carrots, and celery: the classic soffritto base that builds the soup’s flavor. Select firm, vibrant vegetables.
- Chicken stock or broth: creates the savory liquid for simmering. Homemade or quality store-bought stocks work beautifully.
- Acini di pepe or small pasta: these tiny pasta shapes cook quickly and fit well with the other soup elements.
- Baby spinach: adds a fresh green finish and a slight earthiness. Pick fresh and crisp leaves.
- Freshly squeezed lemon juice: gives the soup a subtle tang that balances richness. Use ripe lemons for best juice.
- Extra Parmesan cheese for serving: for that final cheesy touch that every bowl deserves.
Detailed Cooking Directions
- Build The Meatball Mixture:
- In a large bowl, mix together ground beef, ground pork, breadcrumbs, Parmesan cheese, parsley, garlic powder, onion powder, salt, and pepper. Ensure the ingredients are evenly combined but do not overwork to keep the meatballs tender.
- Shape The Meatballs:
- Form the mixture into small balls roughly one inch in diameter. Keeping them small ensures quick cooking and perfect bite-sized portions.
- Brown The Meatballs:
- Heat olive oil in a large pot over medium heat. Cook the meatballs in batches so they brown evenly on all sides, about five minutes per batch. Once browned, remove and set aside to preserve their texture.
- Sauté The Vegetables:
- In the same pot, add chopped onions, carrots, and celery. Cook gently until softened, about five minutes, which releases their natural sweetness and foundation for the broth.
- Simmer With Broth:
- Pour in the chicken stock and bring to a boil. Return the meatballs to the pot and reduce heat to a simmer. Allow the soup to cook for twenty minutes so flavors meld and meatballs cook through.
- Cook The Pasta:
- Add acini di pepe pasta and simmer for another ten minutes, or until the pasta is tender but not mushy. This creates a nice, chewy contrast.
- Add Greens And Finish:
- Stir in baby spinach and lemon juice just until the spinach wilts, about two minutes. This quick addition preserves the brightness of the greens and adds a touch of acidity.
- Season And Serve:
- Taste the soup and adjust salt and pepper as needed. Ladle hot into bowls and garnish with extra Parmesan cheese for a luscious finish.

One of my favorite ingredients in this soup is the fresh parsley, which brightens the meatballs and lifts the overall flavor. I remember making it for a winter gathering, and everyone kept going back for seconds, warmed by both the soup and the company.
Smart Storage Tips
Cool the soup completely before refrigerating. Store in an airtight container and consume within three days for best freshness. Meatballs hold their texture well when reheated slowly on the stove, making this dish excellent for leftovers. You can freeze the soup in portions, but add the spinach fresh when reheating to keep it vibrant and tender.
Ingredient Variations
Swap ground beef and pork for ground turkey or chicken for a lighter take. Try kale or Swiss chard instead of spinach for a different leafy green texture. Use vegetable broth for a vegetarian version, substituting meatballs with vegetarian protein balls or mushrooms.
Perfect Pairing Ideas
Serve with crusty Italian bread to soak up every bit of the flavorful broth. A light white wine such as Pinot Grigio or Verdicchio complements the soup beautifully. A simple arugula salad with lemon vinaigrette balances the heartiness of the soup.

This soup makes a perfect comforting meal for cold days and becomes even better the next day as flavors meld beautifully.
Frequently Asked Questions
- → What type of pasta works best in this soup?
Small pasta shapes like acini di pepe, ditalini, or orzo are ideal since they cook quickly and blend well with the broth and meatballs.
- → Can I use different meats for the meatballs?
Yes, while ground beef and pork are traditional, you can substitute turkey or chicken for a lighter option without sacrificing flavor.
- → How can I make the broth more flavorful?
Using homemade chicken stock enriches the broth's depth. Sautéing the vegetables slowly before adding broth also enhances the overall taste.
- → What is the best way to form meatballs so they stay tender?
Mix ground meats gently with breadcrumbs, cheese, parsley, and seasonings, avoid overworking, and shape them into small, uniform balls to ensure tenderness.
- → Is there a way to add a spicy kick to this soup?
A pinch of red pepper flakes added while simmering can introduce a subtle heat that complements the rich flavors.
- → How do I prevent the spinach from overcooking?
Add the baby spinach at the end and stir just until it wilts, usually 1-2 minutes, to maintain its vibrant color and texture.