Pin it There's something about the steam rising from a pot of creamy soup that makes you pause mid-afternoon and remember why cooking matters. Years ago, I watched my Italian neighbor stir a pot of something golden and fragrant, her wooden spoon moving in slow circles while she hummed. When she finally ladled it into bowls, those tender meatballs sank into a silky broth dotted with sun-dried tomatoes, and I understood immediately that this was comfort in its truest form. That memory stuck with me, and over time, I developed this Tuscan turkey meatball soup—a lighter take on her classic that brings the same warmth and flavor to the table without weighing you down.
I served this to my sister on a rainy evening when she showed up unannounced, exhausted from work. She sat at my kitchen island while I quietly assembled the meatballs, and by the time the first bowl was ready, her whole mood had shifted. She took a spoonful, closed her eyes, and said nothing for a moment—sometimes that silence tells you everything. Since then, it's become our soup, the one she texts me about when the weather turns cold.
What's for Dinner Tonight? 🤔
Stop stressing. Get 10 fast recipes that actually work on busy nights.
Free. No spam. Just easy meals.
Ingredients
- Ground turkey: Use the 93/7 blend if you can find it—it gives you enough fat to keep the meatballs tender without drying out during that initial browning.
- Breadcrumbs: Plain panko works best here because it holds moisture longer than regular breadcrumbs, and that's the secret to light, fluffy meatballs.
- Parmesan cheese: Freshly grated makes a real difference in both the meatballs and the broth—pre-grated has anti-caking agents that dulls the flavor.
- Heavy cream: This is what transforms broth into something luxurious; don't skip it or substitute too much, or you lose the signature richness.
- Sun-dried tomatoes: Choose ones packed in oil rather than dried—they rehydrate in the broth and taste infinitely better than the brittle texture of fully dried versions.
- Fresh baby spinach: Add it at the very end so it stays vibrant green and keeps a bit of structure instead of melting into the soup.
- Chicken broth: Low-sodium is crucial because you're adding Parmesan and cream later; regular broth will tip you toward oversalted territory quickly.
Tired of Takeout? 🥡
Get 10 meals you can make faster than delivery arrives. Seriously.
One email. No spam. Unsubscribe anytime.
Instructions
- Mix your meatball base:
- Combine ground turkey, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a bowl, stirring until just barely combined. Overworking the mixture makes tough meatballs, so resist the urge to knead it like dough.
- Shape into rounds:
- Wet your hands slightly and roll the mixture into roughly 20 meatballs about the size of golf balls. Even sizing matters because they'll cook at the same rate.
- Brown the meatballs:
- Heat 1 tablespoon olive oil in your pot over medium heat until shimmering, then add meatballs in a single layer without crowding—work in batches if needed. Let them sit undisturbed for about 2 minutes per side to develop a golden crust, turning occasionally until all sides are browned (about 4 to 5 minutes total). They won't be cooked through yet, and that's fine.
- Build your aromatics:
- Remove the meatballs to a plate, add the remaining tablespoon of olive oil to the pot, then add your finely chopped onion. Cook gently for about 4 minutes until softened and starting to turn translucent, then add minced garlic and cook for just 1 minute until fragrant.
- Deglaze and simmer:
- Pour in your chicken broth, scraping the bottom of the pot with a wooden spoon to release all those flavorful brown bits—that's liquid gold. Return the meatballs to the pot along with the sun-dried tomatoes and dried Italian herbs.
- Let it gently cook:
- Simmer uncovered for 12 to 15 minutes until the meatballs are cooked all the way through and tender. You can cut one open to check, but they should feel firm to the touch.
- Cream and finish:
- Lower the heat and stir in heavy cream and Parmesan cheese, simmering gently for just 2 to 3 minutes until everything melts together into silky richness. Don't let it boil hard, or the cream can separate.
- Wilt your greens:
- Stir in fresh spinach and cook just until wilted, about 1 to 2 minutes—it brightens the soup and adds an earthy note that balances the richness. Taste and adjust salt and pepper as needed.
Pin it This soup became my answer to those moments when I needed to feel like I was nourishing someone, when words weren't quite enough. There's quiet magic in ladling something warm into a bowl and knowing it's made from scratch, especially when you can taste the care in every spoonful.
Still Scrolling? You'll Love This 👇
Our best 20-minute dinners in one free pack — tried and tested by thousands.
Trusted by 10,000+ home cooks.
Why This Soup Tastes So Tuscan
Tuscan cooking isn't about complexity—it's about letting good ingredients speak. Sun-dried tomatoes bring concentrated tomato flavor without needing fresh tomatoes out of season, and that herbiness from the Italian seasoning and Parmesan creates a backbone that ties everything together. The spinach adds earthiness that echoes through the broth, and the cream brings everything into harmony without being heavy. It's the kind of flavor story that makes you feel like you're cooking from a place with history.
Making It Your Own
This recipe is naturally flexible, which is one of the reasons I keep coming back to it. Some days I'm generous with fresh basil and extra Parmesan on top; other times I skip it altogether and let the soup speak for itself. I've made it with half-and-half instead of heavy cream when I wanted something lighter, and honestly, it's still delicious—just less luxurious.
Serving and Storage Wisdom
This soup is best eaten the day you make it while the meatballs are at their most tender, but it keeps beautifully in the refrigerator for up to three days. The flavors actually deepen a bit as they sit, though the spinach will continue to soften. Reheat gently over medium heat without boiling, and if it thickens too much, thin it with a splash of chicken broth or cream.
- Ladle it into deep bowls and finish with a sprinkle of fresh Parmesan and a few basil leaves if you have them on hand.
- Serve alongside crusty bread for soaking up every last drop, or stir it over cooked pasta for a heartier, almost risotto-like meal.
- A chilled glass of crisp Pinot Grigio pairs beautifully—the acidity cuts through the cream and echoes the brightness of the tomatoes.
Pin it Every time I make this soup, I'm grateful for that rainy afternoon when my neighbor stirred her pot with intention, teaching me without saying a word that food is about presence. This is the gift I keep giving forward.
Recipe FAQ
- → Can I make the meatballs ahead of time?
Absolutely. Shape and brown the meatballs up to 24 hours in advance. Store them in the refrigerator, then reheat gently in the simmering broth before adding the cream and spinach.
- → What can I use instead of heavy cream?
Half-and-half works well for a lighter version. For a dairy-free option, try full-fat coconut milk, though it will add subtle coconut flavor to the finished dish.
- → How do I store leftovers?
Cool completely and refrigerate in an airtight container for up to 4 days. The broth will thicken as it cools—add a splash of broth or water when reheating to reach desired consistency.
- → Can I freeze this soup?
Freeze the meatballs and broth separately for best results. Cream-based soups can separate when frozen and reheated, but the texture usually smooths out with vigorous stirring.
- → What sides pair well with this soup?
Crusty Italian bread, garlic knots, or a simple green salad with balsamic vinaigrette complement the rich flavors. For a heartier meal, serve over cooked orzo or crusty bread cubes.
- → Can I use ground chicken instead of turkey?
Yes, ground chicken works perfectly as a substitute. Keep in mind that chicken may be slightly leaner, so the meatballs might benefit from an extra tablespoon of breadcrumbs for binding.