Italian Wedding Soup

1 week ago 13



A close-up of Italian Wedding Soup in a white bowl, featuring savory meatballs, carrots, leafy greens, and small pasta, with a spoon scooping up some of the ingredients.

This site runs ads and generates income from affiliate links. Read my disclosure policy.

Cozy Italian wedding soup that’s hearty, comforting, and perfect for chilly nights or make-ahead lunches. A classic homemade soup everyone loves.

Know Before You Scroll

Servings: 6

Prep: 20 minutes

Cook: 35 minutes

Total Time: 55 minutes


Lean ground beef, ground pork, plain breadcrumbs, milk, fresh parsley, garlic, Parmesan cheese, egg, salt, black pepper, olive oil, carrots, celery, onion, chicken stock, Parmesan rind (optional), acini di pepe pasta, spinach.

A cozy, savory broth with tender little meatballs, soft veggies, tiny pasta, and just a hint of Parmesan richness. Comfort in a bowl.


Easy. Rolling the meatballs takes a little time, but the steps are super straightforward.


Large mixing bowl, skillet, Dutch oven or large soup pot, wooden spoon, knife, cutting board, ladle.


Cook the pasta directly in the broth for flavor, but if you’re making it ahead, cook pasta separately and stir it in when serving.


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.


No acini di pepe? Orzo, ditalini, or even small shells work great. No spinach? Try chopped kale or escarole.


A close-up of Italian Wedding Soup with meatballs, carrots, leafy greens, pasta, and savory broth in a pot with a metal ladle.

Cozy, Classic Italian Wedding Soup

I’ve been on a mission to perfect Italian wedding soup ever since my grandmother passed, trying to recreate the same cozy, nourishing bowls she made for our family. I tested versions with only beef meatballs, but they were missing that tender, juicy texture I remembered. I tried using different greens like kale, but it just didn’t have the same delicate feel as spinach. After a lot of trial and error, this version finally tastes like hers: a rich, savory broth, tiny pasta, and tender beef-and-pork meatballs that feel like a warm hug in a bowl.

A close-up of a spoonful of Italian Wedding Soup, featuring mini meatballs, acini di pepe pasta, spinach, and diced carrots above a bowl of the classic Italian Wedding Soup, with bread blurred in the background.

Ingredient Notes

Ingredients for Italian Wedding Soup are arranged on a white surface, featuring ground meat, spinach, carrots, celery, onion, garlic, couscous, grated cheese, an egg, parsley, seasonings, olive oil, broth, milk, and breadcrumbs.

A mix of lean ground beef (85–90%) and regular ground pork gives the meatballs the perfect balance of flavor and tenderness.

All beef or all pork works, but the texture and flavor won’t be quite the same. Ground turkey or chicken are lighter options, though a bit less rich.

Plain breadcrumbs + whole milk to keep meatballs moist.

Panko, crushed crackers, or non-dairy milk.

Aromatics & Flavor Builders


Fresh garlic, onion, parsley, and a Parmesan rind for deep, savory flavor.

Jarred garlic, shallots, dried parsley, or just extra grated Parmesan if you don’t have a rind.

Fresh carrots, celery, onion, and baby spinach.

Frozen mirepoix mix for a shortcut, kale or escarole instead of spinach.

Plain breadcrumbs, milk, egg, and Parmesan to hold the meatballs together.

Panko or crushed crackers, non-dairy milk, flax egg, or Pecorino Romano.

You can find the full, printable recipe at the top of this post, but you can read the detailed instructions with photos for each step below.

Step By Step Instructions

Mix the Meatballs

let’s start with the meatballs. In a big bowl, combine 8 ounces of ground beef and 8 ounces of ground pork. Add ½ cup breadcrumbs, 3 tablespoons milk, ¼ cup fresh parsley, 3 cloves minced garlic, ½ cup grated Parmesan, 1 egg, 1 teaspoon salt, and a good grind of black pepper. Gently mix it all together with your hands until just combined — don’t overwork it.

 the left holds separated ingredients for Italian Wedding Soup meatballs—ground meat, an egg, parsley, breadcrumbs, grated cheese, minced garlic, and pepper; the right shows them thoroughly mixed together.

You can use a stand mixer to mix the meatballs if you don’t want to use your hands. Just use the stand mixer and mix on the lowest speed until just combined.

Make the Meatballs

Roll into little ¾-inch meatballs — you’ll get about 30 to 35. Heat 2 tablespoons of olive oil in a skillet and brown them in batches for 5 to 7 minutes, just until golden. They don’t need to cook all the way through yet.

 raw meatballs arranged on a tray, meatballs frying in a pan, and a plate of browned, cooked meatballs ready to add to the classic Italian soup.

Build the Soup Base

In a large soup pot, heat another 2 tablespoons of olive oil. Toss in 2 chopped carrots, 2 chopped celery stalks, and 1 chopped onion. Sauté for 6 to 8 minutes until soft and fragrant. Add 6 cloves of minced garlic and ¼ cup parsley, and let that cook for another minute or two.

 chopped carrots, celery, and onions are being sautéed. The left shows the veggies at the start; the right shows them softened with herbs.

Simmer the Broth

Pour in 8 cups of chicken stock and drop in a Parmesan rind if you’ve got one. Bring it to a boil, then add those browned meatballs. Simmer uncovered for about 10 minutes.

A pot of Italian Wedding Soup with chopped carrots, onions, and herbs on the left; on the right, cooked meatballs are being added to the flavorful wedding soup.

Cook the Pasta

Now stir in 1 cup of acini di pepe pasta. Let it simmer for 8 to 10 minutes until the pasta is al dente and the meatballs are fully cooked. Just a note: if you’re making this ahead, cook the pasta separately so it doesn’t soak up all the broth.

A close-up of a spoonful of Italian Wedding Soup with small pasta, carrots, celery, and herbs held above a pot brimming with colorful broth and diced vegetables.

Finish with Greens

Add 6 ounces of chopped baby spinach and stir until it’s just wilted, 2 to 3 minutes. Remove the Parmesan rind, taste, and season with salt and black pepper — start with about ½ teaspoon salt and adjust from there.

 A close-up of Italian wedding soup with meatballs, spinach, small pasta, and vegetables in broth.

Serve and Enjoy

Ladle the soup into bowls, shower with freshly grated Parmesan, and serve it up with warm crusty bread. Cozy, classic, and just so good.

A close-up of Italian Wedding Soup in a bowl, featuring meatballs, small pasta, spinach, and carrots, with a spoon lifting a flavorful meatball and vegetables from the aromatic broth.

A close-up of Italian Wedding Soup in a white bowl, featuring savory meatballs, carrots, leafy greens, and small pasta, with a spoon scooping up some of the ingredients.

Prep Time: 20 minutes

Cook Time: 35 minutes

Total Time: 55 minutes

Serves 6

For the Meatballs:
  • 8 oz lean ground beef
  • 8 oz ground pork
  • ½ cup plain breadcrumbs
  • 3 tablespoons milk (plus more as needed)
  • ¼ cup fresh parsley (finely chopped)
  • 3 cloves garlic (minced)
  • ½ cup grated Parmesan cheese
  • 1 large egg
  • 1 teaspoon salt
  • Freshly ground black pepper
  • 2 tablespoons olive oil (for cooking)
For the Soup:
  • 2 tablespoons olive oil
  • 2 medium carrots (chopped)
  • 2 medium celery stalks (chopped)
  • 1 medium yellow onion (chopped)
  • 6 cloves garlic (minced)
  • ¼ cup fresh parsley (finely chopped)
  • 8 cups chicken stock (or low-sodium broth)
  • Parmesan rind (About an inch long, optional but recommended)
  • 1 cup dry acini di pepe (or other small pasta)
  • 6 oz fresh baby spinach (roughly chopped)
  • Grated Parmesan (for serving)
Make the Meatballs
  • 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.

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.

Calories: 565 | Carbohydrates: 47g | Protein: 33g | Fat: 28g | Saturated Fat: 8g | Polyunsaturated Fat: 3g | Monounsaturated Fat: 14g | Trans Fat: 0.1g | Cholesterol: 96mg | Sodium: 1158mg | Potassium: 929mg | Fiber: 3g | Sugar: 9g | Vitamin A: 6619IU | Vitamin C: 20mg | Calcium: 177mg | Iron: 5mg

A close-up of Italian Wedding Soup featuring meatballs, small pasta, spinach, and diced carrots in broth. A spoon inside the bowl holds a meatball, pasta, and vegetables. A piece of bread is visible in the background.

FAQs

Why is it called Italian Wedding Soup?

The name comes from the Italian phrase “minestra maritata” meaning “married soup,” referring to the perfect marriage of flavors — not an actual wedding dish.

Can I use store-bought meatballs?

Yes! Mini frozen meatballs work as a shortcut. Just thaw and brown before adding to the soup.

How do I keep the pasta from getting mushy?

Cook pasta separately and add it right before serving. If it sits in the broth too long, it will soak up the liquid.

What pasta works best if I can’t find acini di pepe?

Orzo, ditalini, or small shells are all great substitutes. Just adjust cook time as needed.

Read Entire Article