Go Back
+ servings
Italian wedding soup in a white bowl.

Italian Wedding Soup

This easy Italian Wedding Soup is a cozy meal in a bowl. Fully loaded with homemade meatballs, kale, pasta, and an irresistible broth, this soup is the epitome of comfort food.
Course Main Course
Cuisine American, Italian
Prep Time 15 minutes
Cook Time 45 minutes
Total Time 1 hour
Servings 8 servings
Calories 350kcal


For the broth:

For the meatballs:


To make the broth:

  • In a large pot or Dutch oven on medium-high heat, heat olive oil until shimmering. Add onion, fennel, garlic, mushrooms, and bay leaf, and cook until onion becomes translucent, about 5 minutes, stirring frequently.
  • Add wine and Worcestershire, cook for 1 minute. Add chicken broth, beef broth, and water. Bring to a simmer and reduce heat to low. Simmer for 30 minutes.

To make the meatballs:

  • Meanwhile, in a large bowl, mash together egg, cream, and bread until a smooth paste forms. Add beef, pork, onion, fresh parsley, dried oregano, 1 teaspoon salt, and 1/2 teaspoon pepper.
  • Using a strong rubber spatula or your hands, mix well. Working with 1 heaping teaspoon at a time, roll the meat mixture into balls and place on a baking sheet. Set aside.

To make the soup:

  • Strain the broth using a fine-mesh strainer set over a large bowl, pushing on solids with a spatula to extract as much of the broth as possible. Discard solids and return broth to clean pot.
  • Bring broth to a simmer over medium-high heat. Add pasta and kale, and cook, stirring occasionally, for 5 minutes. Add meatballs and cook until pasta is al dente and meatballs register 165 degrees on a digital thermometer, about 5 to 10 minutes. Season to taste with salt and freshly ground black pepper.



  1. White wine: Opt for a dry white wine such as Sauvignon Blanc, Unoaked Chardonnay, or Pinot Grigio. Or, omit the wine and substitute more chicken broth.
  2. Kale: Any sturdy, leafy dark green like escarole or chard will work, too. Just be sure to remove the thick stems and tear into 1-inch pieces for spoon-sized bites that wilt down nicely.
  3. Bread: Use a slice of white bread or bread crumbs to make a panade, a paste which ensures the juiciest possible meatballs. 
  4. Ground pork: Or substitute 1 pound of Italian sausage.
  5. Onion: To avoid biting into large chunks of onion in your meatballs, finely chop them before adding to the meat mixture.
  6. Yield: This Italian Wedding Soup recipe makes 8 entree-sized servings. I've included pairing ideas below to round out your meal.
  7. Make ahead: Formed meatballs can be covered with plastic wrap and stored in the refrigerator for 24 hours. The broth can be made and stored covered in the refrigerator for up to 3 days.
  8. Storage: Store leftovers in the refrigerator for up to 4 days. Note that pasta will absorb some of the broth and the consistency may change, but the flavors will remain delicious.
  9. Freezer: Cool cooked soup to below 40 degrees on an instant-read thermometer within 2 hours and place into airtight containers. Frozen soup will last 4 to 6 months in the freezer. Thaw overnight in the refrigerator.
  10. Alternative meatball methods: You'll score the best flavor by cooking the meatballs in broth; this way, they'll infuse the soup itself. That being said, you have two other options for preparing the meatballs if you'd rather add them to the soup fully cooked:
    • Pan-fried meatballs: In a large skillet over medium heat, heat olive oil. Add meatballs and cook, turning occasionally until brown on all sides and internal temperature reaches 160 degrees, about 15 minutes. Remove from pan and place on a paper-lined plate.
    • Oven-baked meatballs: Adjust two oven racks to the upper-middle and lower-middle positions and preheat the oven to 400 degrees. Prepare a rimmed baking sheet with parchment paper and baking racks. Place formed meatballs onto the baking sheet about 1 inch apart and bake until browned and crispy, about 15 to 20 minutes, or until an internal thermometer reads 160 degrees for 15 seconds. 


Calories: 350kcal | Carbohydrates: 23g | Protein: 16g | Fat: 20g | Saturated Fat: 7g | Trans Fat: 1g | Cholesterol: 73mg | Sodium: 1083mg | Potassium: 444mg | Fiber: 1g | Sugar: 2g | Vitamin A: 215IU | Vitamin C: 12mg | Calcium: 94mg | Iron: 2mg