Italian Wedding Soup

Tested & Perfected Recipes Cookbook Recipe

This post may contain affiliate links. Read my full disclosure policy.

The whole family loves this Italian wedding soup with tender meatballs, veggies and pasta in a rich, flavorful broth.

Photo by Johnny Miller (Clarkson Potter, 2021)

My kids love anything with meatballs in it (especially mini meatballs), so there’s always excitement at our house when Italian wedding soup is on the menu. The name “wedding soup” comes from the Italian phrase minestra maritata – or “married soup” – which is a reference to the way the flavors combine, like a happy marriage. Wedding soup is traditionally made from a rich, long-cooked homemade chicken stock. In a perfect world, we’d all make our own stock, but who has time? To mimic the same rich flavor, I use a combination of high-quality store-bought broth fortified with wine and lots of veggies.

For the meatballs, my secret is to add ground sausage to the beef mixture, which adds tons of flavor without the need for lots of other seasonings. The most tedious part of the recipe is rolling the little meatballs – the recipe makes 50 – but I usually get one of the kids to help.

What you’ll need to make Italian Wedding Soup

How to Make Italian Wedding Soup

Note that the recipe calls for regular (not low-sodium) chicken and beef broth. I find the soup to be a bit bland with the low-sodium varieties but if you special dietary considerations, go ahead and use low-sodium and season to taste before serving.

How to make Italian Wedding Soup

Begin by making the meatballs.

How to Make Italian Wedding Soup

In a large bowl, beat the egg with the chives, sage and garlic.

How to Make Italian Wedding Soup

Add the ground beef, sausage, cheese, breadcrumbs, and salt.

How to Make Italian Wedding Soup

Mash with your hands until evenly combined.

How to Make Italian Wedding Soup

Roll the mixture into tablespoon-size balls (about 1-inch in diameter) and place on a greased oven-safe rack. (If you don’t have an oven-safe rack, it’s fine to cook the meatballs directly on the baking sheet; it’ll just be a little harder to get rid of the fat as it tends to collect around the meatballs.)

How to Make Italian Wedding Soup

Bake for 15 to 18 minutes, or until lightly browned and cooked through. Set aside.

How to Make Italian Wedding Soup

To make the soup, heat the olive oil in a large pot or Dutch oven over medium heat. Add the onions, carrots, and celery.

How to Make Italian Wedding Soup

Cook, stirring frequently, until the vegetables are softened, about 8 minutes.

How to Make Italian Wedding Soup

Add the chicken broth, beef broth, water, wine, bay leaf, salt, and pepper and bring to a boil.

How to Make Italian Wedding Soup

Add the pasta and cook, uncovered, at a gentle boil until the pasta is al dente, 8 to 10 minutes (or according to package directions).

How to Make Italian Wedding Soup

Taste the soup and adjust the seasoning, if necessary. Reduce the heat to low and add the spinach and meatballs.

How to Make Italian Wedding Soup

Simmer for a few minutes, until the spinach is wilted and the meatballs are warmed through. Ladle into bowls and serve with grated Parmigiano Reggiano.

Make It Ahead

If you’d like to make this soup part of your rotation and want to shave off a little time for the next time around, double the recipe for the meatballs and freeze half. That way, all you’ll have to do is make the soup and add the meatballs to it as directed in the recipe. (They may take a few extra minutes to warm through if you’re adding them directly from the freezer.)

Photo by Johnny Miller (Clarkson Potter, 2021)

YOu may also like

Italian Wedding Soup

The whole family loves this Italian wedding soup with tender meatballs, veggies and pasta in a rich, flavorful broth.

Servings: 8
Prep Time: 50 Minutes
Cook Time: 30 Minutes
Total Time: 1 Hour 20 Minutes

Ingredients

For the Meatballs

  • 1 large egg
  • 3 tablespoons finely chopped fresh chives
  • 2 teaspoons finely chopped fresh sage
  • 2 cloves garlic, minced
  • ¾ lb 85 or 90% lean ground beef
  • ½ lb sweet or hot Italian sausage, removed from the casings
  • ½ cup grated Parmigiano Reggiano
  • ⅓ cup Italian seasoned bread crumbs
  • ¼ teaspoon salt

For the Soup

  • 2 tablespoons olive oil
  • 1 medium yellow onion, diced
  • 2 large carrots, diced
  • 2 stalks celery, diced
  • 6 cups high-quality chicken broth, such as Swanson (do not use low-sodium)
  • 2 cups high-quality beef broth, such as Swanson (do not use low-sodium)
  • 2 cups water
  • ½ cup dry white wine (optional)
  • 1 bay leaf
  • ½ teaspoon salt
  • ¼ teaspoon white pepper (okay to use black pepper)
  • 1 cup small pasta such as dittalini
  • 4 oz fresh spinach, stems trimmed and roughly chopped (once prepped, you should have about 3 packed cups)
  • Parmigiano Reggiano, for serving

Instructions

  1. Make the meatballs: Preheat the oven to 350°F. Line a baking sheet with aluminum foil and set an oven-proof roasting rack over top. Spray the rack generously with nonstick cooking spray.
  2. In a large bowl, beat the egg with the chives, sage and garlic. Add the remaining meatball ingredients and mash with your hands until evenly combined. Roll the mixture into tablespoon-size balls, about 1-inch in diameter (it will make approximately 50 meatballs), and place on the prepared rack. Bake for 15 to 18 minutes, or until lightly browned and cooked through. Set aside.
  3. Meanwhile, start the soup. In a large soup pot or Dutch oven over medium heat, heat the olive oil. Add the onions, carrots, and celery and cook, stirring frequently, until the vegetables are softened, about 8 minutes. Add the chicken broth, beef broth, water, wine, bay leaf, salt and pepper and bring to a boil. Add the pasta and cook, uncovered, at a gentle boil until the pasta is al dente, 8 to 10 minutes (or according to package directions). Taste the soup and adjust the seasoning, if necessary. Reduce the heat to low and add the spinach and meatballs. Simmer for a few minutes, until the spinach is wilted and the meatballs are warmed through. Ladle into bowls and serve with grated Parmigiano Reggiano.
  4. Freezer-Friendly Instructions: The soup can be frozen for up to 3 months but wait until you reheat the soup to add the pasta. Defrost the soup in the refrigerator for 12 hours and then reheat it on the stovetop over medium heat until simmering, add the pasta, and cook until the pasta is tender.

Nutrition Information

Powered by Edamam

  • Calories: 359
  • Fat: 22 g
  • Saturated fat: 7 g
  • Carbohydrates: 16 g
  • Sugar: 5 g
  • Fiber: 2 g
  • Protein: 23 g
  • Sodium: 930 mg
  • Cholesterol: 83 mg

This website is written and produced for informational purposes only. I am not a certified nutritionist and the nutritional data on this site has not been evaluated or approved by a nutritionist or the Food and Drug Administration. Nutritional information is offered as a courtesy and should not be construed as a guarantee. The data is calculated through an online nutritional calculator, Edamam.com. Although I do my best to provide accurate nutritional information, these figures should be considered estimates only. Varying factors such as product types or brands purchased, natural fluctuations in fresh produce, and the way ingredients are processed change the effective nutritional information in any given recipe. Furthermore, different online calculators provide different results depending on their own nutrition fact sources and algorithms. To obtain the most accurate nutritional information in a given recipe, you should calculate the nutritional information with the actual ingredients used in your recipe, using your preferred nutrition calculator.

See more recipes:

Comments

  • I made it & it was perfect. Took it to neighbor whose husband was in hospital and his brother and sister in law were staying with her. They are all “foodies”. & I was hoping they would like it. I was Told they ate it two nights in a row and they want the recipe! I gave them your website! Thank you so much .

    • — Teresa on June 22, 2022
    • Reply
  • I know you said (very clearly) not to use low sodium broths, but since I have been watching my sodium, I did anyway, and it turned out amazing anyway.
    I used 85% less-sodium beef broth, 4 cups of 55% less-sodium chicken broth, 2 cups of regular chicken broth. (mix based on what was available). Other than that, I followed the recipe almost exactly (more pasta because we are a carb house).

    The recipe feels warm and joyful, and with the work for the meatballs (which are incredible and I will be making on their own as well), I felt super proud of this dish, thank you for sharing.

    • — jesse on May 11, 2022
    • Reply
  • I was never a big of this soup, but my BF is, so I will be trying out this recipe. I am wondering if you think it might translate well to the slowcooker?

    • — TAG on April 27, 2022
    • Reply
    • Hi, Regarding making this in a slow cooker, I don’t have a lot of wisdom to share because I don’t have experience with one, but these tips may help you convert the recipe. Hope you find them useful!

      • — Jenn on April 28, 2022
      • Reply
      • Much obliged 🙂

        • — TAG on April 28, 2022
        • Reply
  • Followed the recipe to the letter. I’m going to have to double it next time: my family ate it all up in one go! Even my pickiest eater fell in love with it.

    • — Joseph on April 5, 2022
    • Reply
  • Trying this tonight. I’m using homemade stock I already had made. First time doing homemade meatballs! I can’t wait!!

    • — Robyn on March 3, 2022
    • Reply
  • Excellent soup…love those meatballs.

    • — Nanny Dee on March 2, 2022
    • Reply
  • I can’t believe how good this soup tastes and I can’t stop thinking about it either. Jenn’s recipe is a classic!

    • — Sarah on March 2, 2022
    • Reply
  • I made this delicious soup and will make it again

    • — Lisa on March 1, 2022
    • Reply

Add a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]
[class^="wpforms-"]