Pin it There's something about a bowl of creamy soup that stops time in the kitchen. My neighbor Marco showed up one chilly evening with a bag of sun-dried tomatoes from his garden and challenged me to make something worthy of them—not a heavy cream soup, but something with backbone. That's when I started playing with turkey meatballs instead of beef, watching them bob and dance in a simmering broth while the kitchen filled with garlic and basil. This soup became our late-winter tradition, the kind of dish that tastes like you've been cooking for hours when you've really only spent about an hour total.
I made this for my sister when she was going through a rough stretch, and I watched her face change with that first spoonful—something about the creamy broth and the brightness of those tomatoes seemed to matter more than words. She's made it three times since then, each time slightly different (she adds white beans, I don't judge), and somehow that means more to me than any compliment ever could.
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 (500 g): This is the heart of the meatball, and using ground turkey instead of beef keeps everything light while the Parmesan and egg bind it all together beautifully.
- Breadcrumbs (1/2 cup): They act as a sponge for moisture and help the meatballs stay tender rather than dense and tight.
- Parmesan cheese (1/4 cup for meatballs, 1/2 cup for soup): Use the good stuff you grate yourself if you can—the pre-grated kind has anti-caking agents that make the meatballs gritty.
- Egg (1 large): The binder that holds everything together, but don't overwork the mixture or you'll end up with dense, rubbery meatballs.
- Garlic (5 cloves total): Some goes in the meatballs for depth, some in the broth base for aromatic warmth.
- Fresh parsley (2 tbsp): Chopped fine, it adds brightness to the meatballs and cuts through the richness slightly.
- Dried oregano (1/2 tsp): The quiet note that says Italian without shouting about it.
- Olive oil (2 tbsp): Good quality matters here since it's doing the browning work that builds flavor.
- Yellow onion (1 small, finely diced): Diced small means it becomes nearly invisible but adds sweet undertones to the broth.
- Red pepper flakes (1/2 tsp optional): A whisper of heat that wakes up the palate without overwhelming anyone.
- Chicken broth (4 cups): Low-sodium is crucial because you're adding salty Parmesan and you want to control the seasoning yourself.
- Heavy cream (1 cup): This is what makes it Tuscan and creamy, but don't let it boil or you'll break the emulsion and end up with a greasy mess.
- Sun-dried tomatoes (1/2 cup, oil-packed): The tangy depth that makes people think you've been cooking since dawn.
- Baby spinach (4 cups): Fresh and tender, it wilts in seconds and adds iron and color without any bitterness.
- Fresh basil (1 tbsp for garnish): Added right at the end so it keeps its fresh character and doesn't turn bitter from heat.
Tired of Takeout? 🥡
Get 10 meals you can make faster than delivery arrives. Seriously.
One email. No spam. Unsubscribe anytime.
Instructions
- Combine and form the meatballs:
- Grab a large bowl and gather all your meatball ingredients—ground turkey, breadcrumbs, the smaller amount of Parmesan, egg, two cloves of minced garlic, parsley, oregano, salt, and pepper. Mix everything with your hands just until it comes together, no more, because overworking it is the enemy of tender meatballs. Roll into balls about the size of walnuts and set them on a tray while you work on the broth.
- Brown the meatballs in olive oil:
- Heat a tablespoon of olive oil in a large pot over medium heat and let it shimmer. Working in batches so you don't crowd the pan, lay the meatballs in and let them brown on all sides for about four to five minutes—they'll have a golden crust that's full of flavor even if the insides aren't fully cooked yet. Transfer them to a clean plate and resist the urge to crowd the pot; you want browning, not steaming.
- Build the aromatic base:
- Add the remaining tablespoon of olive oil to the same pot, then add your finely diced onion and cook gently for about three minutes until it turns translucent and soft. Add the three cloves of minced garlic and red pepper flakes if you're using them, and let it all become fragrant—you'll know it's ready when you can really smell it, about a minute.
- Simmer the broth and meatballs together:
- Pour in your chicken broth and bring it to a gentle simmer, then nestle all those browned meatballs back in. Cover the pot and let everything cook together for twelve to fifteen minutes, giving the meatballs time to cook all the way through and the flavors to marry. You'll know they're done when one splits open easily and there's no pink inside.
- Create the creamy richness:
- Reduce the heat to low—this is important because you don't want the cream to boil and break. Stir in the heavy cream, the larger amount of Parmesan, and your sun-dried tomatoes, and let it all simmer gently for three to four minutes, just until it becomes silky and golden.
- Wilt in the spinach:
- Stir in your baby spinach and watch it transform from bright green to tender in about two minutes. Taste the soup and adjust the salt and pepper to your liking—remember that Parmesan and sun-dried tomatoes are already salty, so you might need less than you think.
- Serve with intention:
- Ladle the soup into bowls and tear some fresh basil over the top, finishing with a small handful of extra Parmesan if you're feeling generous. The warmth of the soup will release all those herbal oils and make each spoonful taste like you've really earned it.
Pin it One evening my friend Emily brought her eight-year-old son to dinner, and he asked for seconds of this soup—seconds—when I've seen him push most foods around his plate with suspicion. There's something about warm cream and tender meatballs that speaks a language kids actually understand, and his mom got a moment of quiet eating without negotiation. That's when I realized this soup does something beyond just nourishing; it creates the kind of peace that makes people want to stay at the table longer.
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.
The Magic of Sun-Dried Tomatoes
Sun-dried tomatoes are concentrated essence—all the tang and depth of summer tomatoes with the water removed and intensity turned up. They're not something you see in every kitchen, which is exactly why they make people notice your soup and ask questions. If you buy them oil-packed rather than dry, they're already soft and ready to go, which saves you a step and a cleanup.
Why Turkey Over Beef
Ground turkey gets unfairly blamed for being boring and dry, usually because people overcook it to within an inch of its life. Here it stays tender because you brown it briefly, then simmer it gently in a cream broth that keeps it moist and infuses it with flavor. It's also lighter than beef without tasting like punishment, which means you can eat a good-sized bowl without that sluggish feeling afterward.
Variations and Flexibility
This soup is genuinely flexible, which is what makes it perfect for real life where you don't always have exactly what a recipe asks for. If you don't have sun-dried tomatoes, roasted red peppers give you a different kind of depth, or you can use fresh tomatoes in summer. If heavy cream worries you, half-and-half works fine and tastes lighter, though slightly less luxurious.
- Kale can swap in for spinach if you want something heartier that won't wilt completely into the broth.
- White beans or small pasta shapes turn this into something even more filling if you're serving it as the whole meal.
- A squeeze of lemon juice at the end brightens everything up if the soup tastes even slightly flat to you.
Pin it This soup tastes like someone cares about you, whether you're the one making it or the one lucky enough to be eating it. Keep it in your rotation for the moments when people need feeding and comfort in the same bowl.
Recipe FAQ
- → Can I make the meatballs ahead of time?
Absolutely. Form and brown the meatballs up to a day in advance. Store them in the refrigerator, then finish simmering in the broth when ready to serve. The flavors actually develop nicely during this brief rest.
- → What can I use instead of ground turkey?
Ground chicken works beautifully as a lighter alternative. For something richer, try ground pork or a mix of pork and turkey. Just adjust cooking time slightly to ensure they're cooked through.
- → Is there a dairy-free option?
Replace the heavy cream with full-fat coconut milk or cashew cream for richness. Use nutritional yeast instead of Parmesan in the meatballs, or simply omit the cheese and add extra herbs for flavor.
- → Can I freeze this?
The soup base freezes well for up to 3 months, but the cream may separate slightly when reheated. For best results, freeze without the cream and stir it in after reheating. Meatballs can be frozen separately.
- → What else can I add to this?
White beans or cannellini beans add extra protein and creaminess. Kale or Swiss chard work well instead of spinach. A splash of white wine deglazes the pot beautifully before adding the broth.
- → How do I prevent the cream from curdling?
Reduce the heat to low before stirring in the cream. Avoid boiling once it's added—just a gentle simmer. Room temperature cream incorporates more smoothly than cold from the refrigerator.