Soups & Stews
This awesome tomato soup recipe delivers velvety richness with a modern twist—silky-smooth tomato base elevated by a crisp celery crown garnish that adds texture. The secret lies in caramelizing onions and garlic until deep golden, then simmering tomatoes until their natural sweetness shines through.
Every spoonful is packed with umami depth from a touch of balsamic vinegar and a splash of heavy cream (or coconut milk for a lighter version).
What sets this recipe apart is the balance of techniques: a quick sauté of aromatics, low-and-slow simmering to develop flavors, and optional blending for that signature velvety texture. The celery crowns—thinly sliced celery stalks—provide a satisfying crunch that contrasts beautifully with the soup's smoothness.
It's the kind of recipe that feels both comforting and sophisticated, perfect for chilly evenings or as a starter for dinner parties.
By the time you finish, you'll have a bowl of soup that's rich yet not heavy, tangy yet balanced, with each bite offering layers of flavor. The velvety tomato base clings to every spoonful, while the celery crowns add a refreshing bite.
This isn't just tomato soup—it's a restaurant-quality dish you can make at home, with minimal effort and maximum impact.
Serve it with crusty bread, a sprinkle of parmesan, or a dollop of sour cream for extra indulgence. The possibilities are endless, but the foundation is foolproof. Let's get cooking!
Ingredients for awesome tomato soup
Velvety tomato base meets crisp celery crowns—just 13 ingredients for restaurant-quality soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 2 whole | Medium size, diced finely |
| Garlic Cloves 🧄 | 4 cloves | Peeled, minced for depth |
| Extra-Virgin Olive Oil 🫒 | ½ cup | High quality, fruity |
| Canned San Marzano Tomatoes 🍅 | 28 oz | Crushed, high quality |
| Heavy Cream 🥛 | ½ cup | Full-fat for richness |
| Balsamic Vinegar 🍷 | 1 tbsp | For umami balance |
| Fresh Celery Stalks 🥬 | 4 whole | Thinly sliced for crowns |
| Chicken or Vegetable Broth 💧 | 2 cups | Low-sodium preferred |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Sugar 🍚 | 1 tsp | Balances acidity |
| Fresh Thyme Leaves 🌿 | ¼ cup | Or 1 tsp dried thyme |
| Parmesan Cheese 🧀 | ¼ cup | Freshly grated |
The tomatoes make all the difference. San Marzano cans have the sweetest, most consistent flavor—Whole Foods or Trader Joe's carry them, or check the Italian aisle at your grocery store. Look for plump, ripe tomatoes with no dents or cracks. Fresh thyme is ideal here, but dried works at one-third the amount. The celery should be crisp with no brown spots—organic celery from the farmers market has the best flavor. For the onions, medium size means about 6-8 ounces each, and you want them sweet, not pungent. If you can't find San Marzano, Muir Glen or Cento are solid backups—just don't compromise on quality here.
No heavy cream? Coconut milk or cashew cream keeps it rich while staying lighter. Short on celery? Substitute with fennel or extra carrots—both add sweetness. The balsamic vinegar is non-negotiable for that umami depth, but if you're avoiding sugar, reduce the sugar to 0.5 tsp. Want to make it vegetarian? Use vegetable broth and skip the Parmesan or opt for nutritional yeast. The broth matters too—low-sodium versions prevent the soup from tasting bland. For the celery crowns, choose stalks that are about 1/2 inch thick—they'll hold their shape better when sliced thin.
This soup tastes even better the next day as flavors meld. Store in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months. For freezing, leave out the celery crowns until reheating—they'll stay crisp. The celery crowns can be prepped ahead and stored in the fridge for 3 days, covered with a damp paper towel. Double the batch and freeze half—perfect for lazy weeknights. The Parmesan keeps well in the freezer too, so grate extra and store it in an airtight container.
Why You'll Love This Recipe
- No-Chop Night: I swear by this recipe when I’m too tired to dice onions. Just throw in a whole yellow onion and a few garlic cloves, let the pot do the work—by the time the tomatoes soften, they’ll be so tender you’ll barely notice you skipped prep.
- San Marzano Magic: That first spoonful of soup? Chef’s kiss. The San Marzano tomatoes bring a natural sweetness that pairs perfectly with the rich cream, while the olive oil adds a silky depth—no fancy seasoning needed, just pure, velvety flavor.
- Crowd-Pleaser Flex: Between us, this is my go-to for game day, sick-day recovery, or when my college-aged kids show up unannounced. It’s hearty enough for a full meal but light enough for a lazy lunch—just add crusty bread, and suddenly you’re hosting.
- Leftovers That Shine: Honestly, I make a double batch on purpose. The soup only gets better the next day, especially when reheated with a splash of cream. Plus, it’s cheap to stretch—heavy cream makes it feel indulgent, but the canned tomatoes keep costs low. Win-win.
Step-by-step instructions for velvety tomato soup with celery crown crunch
This method delivers restaurant-quality tomato soup with a perfect balance of smooth texture and crisp celery crowns.
Sauté Aromatics Until Deeply Fragrant
Heat the 0.5 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 2 whole yellow onions and cook for 8-10 minutes until softened and translucent. You'll see them release moisture and collapse slightly—this is when they're ready for the next step.
Add the 4 cloves minced garlic and 4 whole celery stalks (thinly sliced for crowns) to the pot. Stir constantly for 3-4 minutes until the garlic becomes golden brown and the celery begins to soften. The kitchen should fill with an aromatic blend of sweet onions, earthy garlic, and fresh celery—this is the flavor foundation of your soup.
Build the Tomato Base with Balsamic Depth
Pour in the 28 oz crushed San Marzano tomatoes and stir to combine with the aromatics. Add the 1 tbsp balsamic vinegar, 1.5 tsp salt, 0.5 tsp ground black pepper, and 1 tsp sugar. Bring the mixture to a gentle boil over medium-high heat, then immediately reduce to low heat.
Simmer uncovered for 15-20 minutes until the mixture thickens slightly and the flavors meld together. You'll notice the soup develop a rich, concentrated tomato aroma—this is when the natural sweetness emerges and the acidity balances. The celery crowns should remain crisp at this stage, which is crucial for the final texture.
Blend to Silky Smoothness
Using an immersion blender, carefully blend the soup directly in the pot until completely smooth. For a perfectly velvety texture, blend in 10-second bursts, allowing steam to escape between each burst. If you prefer a chunkier texture, pulse briefly instead of blending fully.
After blending, return the soup to low heat and stir in the 2 cups chicken or vegetable broth and 0.25 cup fresh thyme leaves. The broth will dilute the soup slightly but maintain its depth. Let it simmer for another 5 minutes to allow the thyme to infuse its earthy aroma into the soup.
Finish with Cream and Crisp Celery
Reduce the heat to lowest setting and gently stir in the 0.5 cup heavy cream. The cream will create a luxurious mouthfeel while adding richness. Let the soup simmer for 2-3 minutes—just enough time to warm through without curdling the cream. You'll notice the soup become slightly thicker and more opulent in texture.
Taste and adjust seasoning if needed. The celery crowns should still be crisp—if they've softened too much, set aside a small portion of the soup and return the celery to the pot for 1-2 minutes to refresh their crunch. Ladle the soup into bowls, garnishing each serving with a sprinkle of 0.25 cup freshly grated Parmesan cheese.
Pro Tips For Making Awesome Tomato Soup
- SWEAT THE ONIONS: Don’t rush this—cut onions into even ¼-inch slices and cook them in olive oil over medium heat for 8–10 minutes until they’re deep golden, not just soft. I used to skip this, and the soup always tasted flat until I realized the caramelized onions are the thing that matters most.
- CRUSH THE GARLIC: Smash the garlic cloves with the flat of your knife before adding them to the pot. This releases more flavor without burning, and you’ll taste the difference when you stir it into the simmering tomatoes. (Yes, even if you’re impatient like me.)
- SKIP THE BOIL: Resist the urge to bring the soup to a full boil after adding tomatoes—just simmer gently for 20–25 minutes. Boiling breaks down the San Marzano’s natural sweetness and makes the texture watery. Low and slow keeps it rich.
- STIR IN CREAM LAST: Wait until the very end to fold in the heavy cream, and do it off the heat. Adding it too early can make the soup split, and heating it directly can turn it grainy. A ladleful at the end keeps it silky smooth. (Your future self will thank you.)
Regional styles of this recipe
Italian Classic
This is the foundation of what most Italian nonnas would make—simple yet deeply flavorful. In regions like Tuscany and Lombardy, they'd use San Marzano tomatoes (just like this recipe) and let them simmer low and slow for hours.
The key difference? They often skip the cream, relying on Parmigiano-Reggiano and butter for richness instead. Try adding 1 tablespoon tomato paste at the start for extra depth, just like they do in Florence. 🍅
New England Creamy Twist
Up north, they take tomato soup to another level by making it ultra-creamy with half-and-half instead of heavy cream. Add a pinch of nutmeg and a dash of Worcestershire sauce for that classic Campbell's-inspired flavor.
Serve it with grilled cheese sandwiches—this combo is a New England staple. I love adding a splash of sherry at the end for a sophisticated touch. 🧀
Southern Comfort Style
In the American South, tomato soup gets a smoky, spicy kick. Add 1 teaspoon smoked paprika and ½ teaspoon cayenne to the base, then finish with crumbled bacon and sharp cheddar on top.
The celery crowns work perfectly here too—they cut through the richness. For extra heat, stir in ½ teaspoon hot sauce before serving. This version is hearty enough for a main dish! 🌶️
French Rustic Version
In Provence, they'd use roasted tomatoes instead of canned for a deeper, earthier flavor. Add 1 sprig fresh rosemary while simmering and finish with a swirl of crème fraîche instead of heavy cream.
Garnish with toasted baguette croutons and fresh basil for a true French bistro vibe. The celery crowns add a nice contrast to the rustic texture. 🥖
Mexican-Inspired Spicy
For a bold twist, add 1 teaspoon ground cumin and ½ teaspoon chipotle powder with the tomatoes. Finish with lime zest, cilantro, and a dollop of sour cream.
The celery crowns still work—just add diced jalapeños for extra heat. This version is perfect for Taco Tuesday or as a side for grilled meats. 🌶️💛
Vegetarian Vegan Adaptation
Skip the cream and Parmesan, and use coconut milk instead. Add 1 tablespoon nutritional yeast for a cheesy flavor and 1 teaspoon smoked salt for depth.
The celery crowns stay the same—just ensure they're crisp. This version is just as rich and satisfying, with a lighter touch. Perfect for plant-based eaters! 🌱
Nutrition facts
Frequently asked questions
Can I make this soup without an immersion blender?
Transfer the cooked soup to a regular blender (in batches) or use a food processor. For best results, let the soup cool slightly first to prevent steam buildup. If you prefer a chunkier texture, simply mash some tomatoes with a potato masher instead of blending. The celery crowns will still add that perfect crunch!
How do I keep the celery crowns crisp after adding them to the soup?
Add the celery crowns just before serving to maintain their crispness. If you need to prep ahead, store them separately in the fridge for up to 3 days—keep them dry with a paper towel. For extra crunch, chill the soup for 10 minutes before adding the celery. Pro tip: Use a mandoline for perfectly thin slices!
Can I substitute canned tomatoes with fresh?
Yes, but you'll need to roast them first for depth. Halve 4 large fresh tomatoes, roast at 400°F for 20 minutes, then peel and crush. Use 1.5 cups of roasted tomatoes (about 2 tomatoes) to replace the canned version. Fresh tomatoes add a brighter acidity that works beautifully with the cream.
Why did my soup turn out too acidic?
This usually happens if the tomatoes weren't ripe enough or if you skipped the sugar. Next time, use fully ripe San Marzano tomatoes and add 1 extra teaspoon of sugar while simmering. For balance, stir in ½ teaspoon baking soda** (just a pinch!) to neutralize acidity—it works like a charm. Taste as you go!
What's the best way to reheat leftovers?
Gently reheat on the stove over low heat for 5-7 minutes, stirring occasionally. Avoid microwaving as it can make the celery soggy. For extra richness, stir in 1 tablespoon cream while reheating. Store leftovers in an airtight container for up to 5 days—the flavors actually improve overnight!
