Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 lb ground chicken
- 4 oz mild Italian sausage, casing removed
- 1/3 cup plain breadcrumbs
- 1/4 cup grated Parmesan + more for serving
- 1 large egg (for meatballs)
- 2 tbsp milk
- 2 tbsp chopped fresh parsley
- 2 cloves garlic, minced
- 1 small onion, finely chopped
- 2 carrots, diced
- 2 celery stalks, diced
- 2 tbsp olive oil
- 8 cups low-sodium chicken broth
- 1 bay leaf
- 1 cup dry pastina (such as acini di pepe)
- 5 oz baby spinach, chopped
- 1 1/2 cups fresh mozzarella pearls (about 6 oz)
- Salt, black pepper, and red pepper flakes to taste
Do This
- 1. Mix ground chicken, sausage, breadcrumbs, Parmesan, egg, milk, parsley, garlic, salt, and pepper; roll into 1-inch meatballs.
- 2. Brown meatballs in olive oil in a large pot over medium-high heat until lightly golden; remove to a plate.
- 3. In the same pot, sauté onion, carrots, and celery until softened, 6–8 minutes.
- 4. Add broth, bay leaf, salt, and pepper; bring to a simmer, then gently return meatballs to the pot.
- 5. Stir in pastina and cook, simmering gently, until pasta and meatballs are cooked through, 10–12 minutes.
- 6. Turn heat to low; add spinach and cook just until wilted, 1–2 minutes.
- 7. Remove from heat, stir in mozzarella pearls, let sit 2–3 minutes, then serve hot with extra Parmesan.
Why You’ll Love This Recipe
- The broth is rich and cozy, with tiny pasta and tender meatballs in every spoonful.
- Melty mozzarella pearls turn the soup irresistibly cheesy without feeling heavy.
- Everything cooks in one pot, making it weeknight-friendly and easy to clean up.
- Perfect for make-ahead meals, freezing, or feeding a crowd on a chilly night.
Grocery List
- Produce: 1 small yellow onion, 2 carrots, 2 celery stalks, 2 cloves garlic, 5 oz baby spinach, fresh parsley
- Dairy: Ground Parmesan cheese, fresh mozzarella pearls, milk, eggs (optional if you skip the egg swirl), butter (optional for richness)
- Pantry: Olive oil, plain breadcrumbs, low-sodium chicken broth, bay leaf, dried oregano, red pepper flakes, kosher salt, black pepper, pastina (acini di pepe or similar tiny pasta)
Full Ingredients
For the Meatballs
- 1 lb ground chicken (or turkey)
- 4 oz mild Italian sausage, casings removed (about 2 links)
- 1/3 cup plain dry breadcrumbs
- 1/4 cup finely grated Parmesan cheese
- 1 large egg
- 2 tbsp whole milk
- 2 tbsp finely chopped fresh parsley
- 2 cloves garlic, finely minced
- 3/4 tsp kosher salt
- 1/4 tsp freshly ground black pepper
- 1/2 tsp dried oregano
For the Soup
- 2 tbsp olive oil
- 1 small yellow onion, finely chopped (about 1 cup)
- 2 medium carrots, peeled and diced (about 3/4 cup)
- 2 celery stalks, diced (about 3/4 cup)
- 8 cups low-sodium chicken broth
- 1 bay leaf
- 1/2 tsp kosher salt, plus more to taste
- 1/4 tsp freshly ground black pepper, plus more to taste
- Pinch red pepper flakes (optional, for gentle heat)
- 1 cup dry pastina, such as acini di pepe, stelline (stars), or orzo
- 5 oz baby spinach, roughly chopped
Cheesy Finish & Garnish
- 1 1/2 cups fresh mozzarella pearls (about 6 oz)
- 1/3–1/2 cup finely grated Parmesan or Pecorino Romano, for serving
- 2 tbsp chopped fresh parsley, for garnish
Optional Egg-Parmesan Swirl (Classic Italian Wedding Touch)
- 2 large eggs
- 1/4 cup finely grated Parmesan cheese
- Pinch kosher salt

Step-by-Step Instructions
Step 1: Mix the Meatball Mixture
In a large mixing bowl, combine the ground chicken, Italian sausage, breadcrumbs, 1/4 cup Parmesan, 1 egg, 2 tbsp milk, 2 tbsp chopped parsley, minced garlic, 3/4 tsp salt, 1/4 tsp black pepper, and 1/2 tsp dried oregano. Use a fork or your hands to gently mix until everything is evenly combined. Try not to overwork the meat; that can make the meatballs dense.
Once mixed, let the mixture sit for 5 minutes so the breadcrumbs can hydrate slightly. This helps the meatballs hold together and stay tender.
Step 2: Shape Small, Tender Meatballs
Line a plate or small tray with parchment paper. Lightly oil your hands, then roll the meat mixture into small balls, about 1 inch in diameter (roughly 1 heaping tablespoon each). You should get around 30–36 mini meatballs. Place them on the lined plate as you go. If you have time, chill the shaped meatballs in the refrigerator for 10–15 minutes; this helps them firm up and brown nicely without breaking.
Step 3: Brown the Meatballs
In a large heavy-bottomed pot or Dutch oven, heat 2 tbsp olive oil over medium-high heat. When the oil is hot and shimmering, add half the meatballs in a single layer, without crowding. Brown for 2–3 minutes, turning gently with tongs or a spoon to get some color on at least two sides. They do not need to be cooked through yet; they will finish in the broth.
Transfer the browned meatballs to a clean plate and repeat with the remaining meatballs, adding a bit more oil if needed. Leave any browned bits (fond) in the pot—they will add great flavor to the soup base.
Step 4: Build the Flavorful Broth Base
Reduce the heat to medium. In the same pot, add the chopped onion, carrots, and celery. Sauté, stirring occasionally, until the vegetables are softened and starting to turn golden at the edges, about 6–8 minutes. If the pot looks dry, add a teaspoon or two of olive oil or a small knob of butter.
Stir in a pinch of red pepper flakes if using, plus 1/2 tsp kosher salt and 1/4 tsp black pepper. Pour in 8 cups of chicken broth and add the bay leaf. Use a wooden spoon to scrape up any browned bits from the bottom of the pot. Increase heat to high and bring the mixture just to a boil, then reduce to a gentle simmer.
Step 5: Simmer Meatballs and Cook the Pastina
Once the broth is gently simmering, carefully return all the browned meatballs (and any juices on the plate) to the pot. Maintain a gentle simmer—not a hard boil—to keep the meatballs tender. Cook for 5 minutes.
Stir in 1 cup dry pastina. Continue to simmer, stirring occasionally so the pasta does not stick to the bottom, until the pasta is just al dente and the meatballs are cooked through, about 8–10 minutes more. The pasta will continue to soften slightly as the soup rests, so avoid overcooking at this stage.
Step 6: Add Spinach and Optional Egg-Parmesan Swirl
Stir in the chopped spinach and cook just until wilted and bright green, 1–2 minutes. Taste the broth and adjust seasoning with additional salt and pepper as needed.
If you are using the optional egg-Parmesan swirl, whisk together 2 eggs, 1/4 cup grated Parmesan, and a pinch of salt in a small bowl. Turn the heat to low so the soup is hot but not boiling. While gently stirring the broth in a circular motion, slowly drizzle in the egg mixture in a thin stream. The eggs will cook instantly, forming delicate ribbons throughout the soup. Let it simmer for 1 minute more, then turn off the heat.
Step 7: Melt in the Mozzarella Pearls and Serve
Turn off the heat and immediately stir in the mozzarella pearls. Let the soup stand for 2–3 minutes. The hot broth will gently soften the mozzarella so it becomes warm, stretchy, and deliciously melty without completely dissolving.
Ladle the soup into warm bowls, making sure to scoop from the bottom so each bowl gets plenty of meatballs, pastina, and spinach. Top with a generous sprinkle of grated Parmesan and a pinch of chopped fresh parsley. Serve right away while the mozzarella is still soft and gooey, with extra Parmesan on the table.
Pro Tips
- Keep meatballs tiny: Classic Italian wedding soup uses small meatballs so you get a bit of everything in each spoonful. Aim for 1-inch balls or smaller.
- Simmer gently, never boil hard: A rolling boil can break up meatballs and turn the broth cloudy. A gentle simmer keeps the soup clear and the meatballs tender.
- Add mozzarella at the end: Stir in the mozzarella pearls off the heat so they soften and become gooey without completely melting into the broth.
- Control pasta softness: Pastina absorbs broth as it sits. If you prefer firmer pasta for leftovers, slightly undercook it or cook the pasta separately and add it to each bowl.
- Boost umami: Use good-quality chicken broth and do not skimp on the final Parmesan sprinkle; both are key to deep, savory flavor.
Variations
- Beef and Pork Meatballs: Swap the ground chicken and sausage for 1/2 lb ground beef and 1/2 lb ground pork for a richer, more traditional flavor.
- No-Egg Version: Skip the egg-Parmesan swirl entirely and rely on the mozzarella pearls and extra grated cheese to make the soup creamy and luxurious.
- Extra-Veggie Wedding Soup: Add 1 cup of finely chopped kale or escarole with the spinach, or stir in 1 cup of frozen peas during the last 3 minutes of cooking.
Storage & Make-Ahead
For best texture, store the soup and pasta separately if you plan to keep leftovers. The pastina will continue to absorb broth and soften as it sits.
To refrigerate, cool the soup to room temperature, then transfer to airtight containers. Store in the refrigerator for up to 3 days. Reheat gently on the stovetop over medium-low heat until steaming. If the soup has thickened, add a splash of water or broth to loosen it. Add extra mozzarella pearls and Parmesan to each bowl right before serving for that fresh, melty cheese effect.
To freeze, prepare the soup without the pastina and mozzarella. Cool completely, then freeze in airtight containers for up to 3 months. Thaw overnight in the refrigerator, reheat on the stovetop, then add cooked pastina, spinach (if you like it brighter), and mozzarella pearls just before serving.
Nutrition (per serving)
Approximate values per serving (1 of 6): 430 calories; 25 g protein; 23 g fat; 25 g carbohydrates; 2 g fiber; 5 g sugar; 910 mg sodium. Exact values will vary based on specific ingredients and brands used.


Leave a Reply