
Italian Wedding Soup with Beef Meatballs
Tender mini beef-and-Parmesan meatballs, sweet carrots, tiny acini di pepe pasta and silky escarole float in a savory, garlicky chicken broth. It's a one-pot Italian-American classic that comes together in about an hour.
- Prep
- 30 min
- Cook
- 35 min
- Wait
- 5 min
- Total
- 1 hr 10 min
- Makes
- About 3 quarts (2.8 L), 6 generous bowls
Steps
Before you start
- This recipe is made entirely on the stovetop; no oven is needed.
- Use 80/20 ground beef; leaner beef makes drier, tougher meatballs.
- Wash the escarole well. Grit hides between the leaves, so swish the chopped leaves in a bowl of cold water and drain.
- Grate the Parmesan on the small holes of a box grater so it blends into the meatballs and doesn't leave chunks.
- Have the broth, water and a clean plate ready before you start shaping, so you can move quickly once the meatballs are formed.
Soak the panko
- In a large mixing bowl, stir together the panko and milk.
- Let it sit for 5 minutes so the crumbs absorb the milk and form a thick, wet paste.
- This panade keeps the meatballs tender.
+ Show details− Hide details
Ready when: The crumbs look like a soft, thick paste with no dry bits
Mix the meatballs
- Add the ground beef, egg, ½ cup Parmesan, minced garlic, parsley, ¾ teaspoon salt and pepper to the panade.
- Mix gently with your hands for about 30 seconds, only until everything is evenly combined.
- Stop as soon as no streaks of egg or cheese remain.
+ Show details− Hide details
Ready when: The mixture looks uniform and just holds together
Tip: Overmixing makes dense, rubbery meatballs.
Shape the meatballs
- Wet your hands lightly with water.
- Roll the mixture into about 36 small meatballs, each about ¾ inch (2 cm) wide, using roughly 1 tablespoon (12–14 g) of meat for each.
- Place them on a rimmed baking sheet or plate.
- Wash your hands well.
+ Show details− Hide details
Ready when: Meatballs are smooth, uniform in size and about the size of a large marble
Tip: Keep the size small. Large meatballs are hard to fit on a spoon with the pasta and take longer to cook.
Soften the vegetables
- Heat the olive oil in a 6-quart (5.7 L) soup pot over medium heat until it shimmers.
- Add the onion, carrots and celery with a pinch of salt.
- Cook, stirring every minute or so, for 7 to 8 minutes.
- Add the sliced garlic and cook for 30 seconds, stirring constantly.
+ Show details− Hide details
Ready when: Onion is translucent and soft, carrots are slightly tender, and the garlic smells fragrant but hasn't browned
Tip: Don't let the garlic brown. It turns bitter in the broth.
Bring broth to a simmer
- Pour in the chicken broth and water.
- Add the Parmesan rind if using.
- Raise the heat to high and bring to a gentle boil, about 6 minutes.
- Reduce the heat to medium-low so the liquid is simmering with small, steady bubbles.
+ Show details− Hide details
Ready when: Small bubbles break the surface steadily across the pot
Tip: A hard boil will break the meatballs apart in the next step, so lower the heat before adding them.
Simmer the meatballs
- Gently drop the meatballs into the simmering broth one at a time, spacing them out so they don't stick together.
- Simmer, uncovered, for 8 to 10 minutes without stirring for the first 3 minutes, then stir gently.
- Cook until the meatballs are firm and cooked through, and an instant-read thermometer inserted into one reads 160°F (71°C).
+ Show details− Hide details
Ready when: Meatballs are firm, no longer pink inside, and reach 160°F (71°C)
Tip: Skim off any foam that rises to the surface with a spoon for a clearer broth.
Cook the pasta
- Stir in the acini di pepe.
- Raise the heat to medium and simmer for 7 to 8 minutes, stirring occasionally to keep the tiny pasta from sticking to the bottom, until the pasta is tender with a slight bite.
+ Show details− Hide details
Ready when: Taste a piece: it's soft but still has a slight chew in the center
Tip: Acini di pepe keeps absorbing broth as it sits, so don't overcook it. If making ahead, see the storage notes.
Wilt the escarole
- Remove the Parmesan rind, if used, and discard it.
- Stir in the escarole in 2 handfuls and cook for 2 to 3 minutes, stirring, until the leaves are wilted and tender but still bright green.
+ Show details− Hide details
Ready when: Leaves are limp, glossy and tender, with a slight bitter-sweet flavor
Tip: Escarole is bulky at first but cooks down quickly, so don't worry if the pot looks full.
Season and serve
- Taste the broth and add salt as needed, usually ½ to 1 teaspoon, plus black pepper if you like.
- Stir in the lemon juice if using for brightness.
- Ladle into warm bowls, giving each about 6 meatballs, and top with the grated Parmesan.
+ Show details− Hide details
Ready when: Broth tastes savory and well seasoned, not flat
Tip: Season at the end. The broth, Parmesan and rind all add salt.
Good to know
Tips
- Simmer the meatballs directly in the broth rather than browning them. It's easier, and it flavors the soup.
- Keep the meatballs small and uniform so they cook evenly at the same rate.
- Add the pasta only after the meatballs are cooked, so it doesn't turn mushy.
- A Parmesan rind adds a savory depth to the broth; save rinds in the freezer for soups.
Make ahead
Shape the raw meatballs up to 1 day ahead, cover and refrigerate on the baking sheet. The vegetables can be chopped 1 day ahead. For the best leftovers, cook the pasta separately and add it to each bowl when serving.
Storage & reheating
Room temperature: no more than 2 hours. Refrigerator: store in an airtight container for up to 3 days. The pasta will absorb broth, so add a splash of broth or water when reheating. Freezer: freeze for up to 3 months (best without the pasta). Reheat gently on the stovetop over medium-low heat until steaming hot, 165°F (74°C), without boiling hard.
Substitutions
- escarole → Baby spinach or curly endive. Use 6 oz (170 g) spinach and stir in for only 1 minute. Curly endive can be used 1:1 and cooked the same time.
- acini di pepe pasta → Orzo or ditalini. Orzo cooks in about the same time. Ditalini may need 1 to 2 extra minutes.
- ground beef (80/20) → Half ground beef and half ground pork, or ground turkey. Beef and pork give a richer meatball. Turkey makes a leaner one and must also reach 165°F (74°C).
- panko breadcrumbs → Plain dry breadcrumbs. Use 6 tablespoons (about 25 g), since fine crumbs are denser than panko.
More soups & stews
See all →Find more like this
- Meal
- Dinner
- Cuisine
- Italian
- Main ingredient
- Ground BeefPasta
- Diet
- HalalSugar-Free
- Method
- Stovetop





