Tasty but WholeInsider Preview
Italian Wedding Soup with Turkey Meatballs and Greens

Italian Wedding Soup with Turkey Meatballs and Greens

Despite the name, Italian wedding soup has nothing to do with weddings, the "marriage" is between the meat and the greens in the broth, and once you taste it, you'll understand why they're a perfect pair. Our version uses turkey meatballs because they're lean and tender, and we simmer a parmesan rind in the broth for a savory richness that feels like you slow-simmered this for hours. (You didn't. It takes about forty-five minutes.) The escarole wilts into the broth and adds a pleasant, slightly bitter green bite. This is the soup our daughter will grow up eating, and with another little one on the way, it's going to be doing a lot of work around here. Honestly, it's also the soup Adam ate three bowls of the first time we made it.

  • Prep20 minutes
  • Cook25–30 minutes
  • Total45–50 minutes
  • Servings4
  • PRO
  • GF
  • KID
Estimated macros per serving

Calories ~350 · Protein ~31g · Carbs ~10g · Fat ~21g

Ingredients

For the turkey meatballs:
  • 1 pound ground turkey (dark meat preferred for moisture)
  • ¼ cup almond flour
  • 1 large egg
  • 2 cloves garlic, finely minced
  • 2 tablespoons fresh parsley, finely chopped
  • ¼ cup grated Pecorino Romano or Parmesan
  • Kosher salt and freshly ground black pepper, to taste
For the soup:
  • 8 cups good-quality chicken broth, certified gluten-free (homemade if you have it)
  • 1 Parmesan rind (about 3 inches: save these in your freezer)
  • 1 small head escarole, washed and roughly chopped (about 4 cups), or 4 cups chopped kale
  • 1 small yellow onion, finely diced
  • 2 medium carrots, peeled and diced small
  • 2 stalks celery, diced small
  • 1 tablespoon extra-virgin olive oil
  • Freshly grated Parmesan, for serving

Method

  1. Make the meatballs: In a medium bowl, combine the ground turkey, almond flour, egg, garlic, parsley, grated cheese, ½ teaspoon salt, and a few grinds of pepper. Mix gently with your hands until just combined, don't overwork it. Roll into small meatballs, about 1 inch each (you should get roughly 30–36). Set aside on a plate or sheet pan.
  2. Heat the olive oil in a large pot or Dutch oven over medium heat. Add the diced onion, carrots, and celery and cook for 5–6 minutes, until starting to soften.
  3. Pour in the chicken broth and add the Parmesan rind. Bring to a boil, then reduce heat to a steady simmer. (This should take 7–10 minutes.)
  4. Gently lower the meatballs into the simmering broth one at a time. Don't stir for the first 3 minutes; let them set on the outside so they don't fall apart.
  5. Simmer for 12–15 minutes, until the meatballs are cooked through and register 165°F (74°C) on an instant-read thermometer inserted into the center of the thickest meatball. (If you don't have a thermometer, cut one open — the meat should be completely opaque with no pink.) Carrots should be tender at this point as well.
  6. Add the escarole or kale and stir gently. Cook for 2–3 minutes, just until the greens are wilted but still have some color and texture.
  7. Fish out and discard the Parmesan rind (it's given its all). Taste the broth and adjust salt and pepper.
  8. Ladle into bowls and top with freshly grated Parmesan and a drizzle of good olive oil.

Variations & Notes

  • Vegan Swap: Replace the meatballs with white bean "meatballs": mash 1 can of drained cannellini beans with ¼ cup almond flour, 2 tablespoons nutritional yeast, garlic, and parsley, then roll and bake at 375°F (190°C) for 15 minutes before adding to the soup. Skip the Parmesan rind and add 2 tablespoons of white miso to the broth for umami.
  • Paleo-Friendly Adjustment: Use the meatball recipe as written (almond flour keeps them paleo). Skip the Parmesan rind and cheese: add 1 tablespoon of coconut aminos to the broth for depth.
  • Extra Hungry: Add ½ cup of small pasta (ditalini or orzo — use a gluten-free pasta to keep the tag) to the broth during the last 8 minutes of cooking. Or serve with garlic bread.
  • Substitutions: Chicken or pork meatballs work equally well. Swiss chard is a great stand-in for escarole. If you don't have a Parmesan rind, add 2 tablespoons of grated Parmesan directly to the broth: not the same magic, but it helps. If using store-bought meatballs that don't contain garlic, add 2 cloves garlic, minced, after the onion, carrots, and celery have softened; cook for 30 seconds before adding the broth.
  • Storage: Keeps in the fridge for 4 days. Freezes well for up to 2 months (if you added pasta, it will absorb broth and get soft: better to add pasta fresh when reheating). Reheat gently on the stovetop; add a splash of broth if it's reduced.