I used to think tomato soup only came from a can until I was well into my twenties. That’s what we always had growing up—the red stuff from Campbell’s with some crackers on the side. It wasn’t until a friend served me homemade roasted tomato soup that I realized what I’d been missing.
The thing about roasting tomatoes first is that it changes everything. You get this deep, rich flavor that canned soup just can’t match. And when you top it with melted Gruyère cheese on crusty bread? It’s like having a fancy restaurant meal right at your kitchen table, but way easier than you’d think.

Why You’ll Love This Roasted Tomato Soup
- Rich, deep flavor from roasting – Roasting the tomatoes, onion, and garlic brings out their natural sweetness and creates a much more complex taste than regular tomato soup from a can.
- Simple, fresh ingredients – You probably have most of these pantry staples already, and the fresh basil and quality tomatoes make all the difference.
- Impressive presentation – The golden gruyère toasts floating on top make this look like something from a fancy restaurant, but it’s totally doable at home.
- Perfect comfort food – There’s nothing quite like a warm bowl of homemade tomato soup, especially when it’s paired with cheesy, crispy toasts for dipping.
- Make-ahead friendly – The soup keeps well in the fridge for days and actually tastes even better the next day, making it great for meal prep or entertaining.
What Kind of Tomatoes Should I Use?
This recipe calls for both roma tomatoes and cherry tomatoes, which is a great combination that gives you the best of both worlds. Roma tomatoes are perfect for roasting because they’re meaty with fewer seeds and less water, so they concentrate into rich, sweet flavor when cooked. Cherry tomatoes add a pop of brightness and natural sweetness that balances out the earthier roma tomatoes. If you can’t find roma tomatoes, regular beefsteak or vine-ripened tomatoes will work too, just be aware they might release more liquid during roasting. For the best flavor, try to use tomatoes that are ripe but still firm – they should give slightly when pressed but not be mushy.

Options for Substitutions
This soup is pretty forgiving when it comes to swapping ingredients, so here are some easy substitutions:
- Roma tomatoes: Any large tomato variety works here – beefsteak, heirloom, or even regular slicing tomatoes. Just make sure they’re ripe for the best flavor.
- Heavy cream: You can use half-and-half for a lighter version, or try whole milk with a tablespoon of butter. For dairy-free options, coconut cream or cashew cream work well too.
- Gruyère cheese: Swiss cheese is the closest substitute, but sharp cheddar, fontina, or even parmesan will give you that nice melty, nutty flavor on your toasts.
- Fresh basil: Dried basil works in a pinch – use about 1 teaspoon instead of the fresh leaves. You could also try fresh oregano or thyme for a different herb profile.
- Vegetable broth: Chicken broth adds more richness, or you can use water with an extra pinch of salt if you’re out of both.
- Baguette: Any crusty bread works great – ciabatta, country bread, or even thick slices of sourdough. Just make sure it’s sturdy enough to hold the cheese.
Watch Out for These Mistakes While Cooking
The biggest mistake when roasting tomatoes is not giving them enough time in the oven – undercooked tomatoes will make your soup watery and lack that deep, concentrated flavor you’re after, so roast them until they’re caramelized and slightly shriveled around the edges.
Don’t forget to season your tomatoes with salt and pepper before roasting, as this draws out moisture and helps concentrate the flavors during the cooking process.
When making the Gruyère toasts, keep a close eye on them since the cheese can go from golden and bubbly to burnt in just a minute or two – pull them out as soon as the cheese is melted and lightly browned.
If your finished soup tastes too acidic, add a pinch of sugar or an extra splash of cream to balance out the tartness, and always taste and adjust the seasoning before serving since roasted vegetables can vary in intensity.

What to Serve With Roasted Tomato Soup?
This roasted tomato soup is already paired with those delicious gruyère toasts, but you can definitely expand the meal from there. A simple arugula or mixed greens salad with a light vinaigrette makes a nice fresh contrast to the rich, roasted flavors of the soup. If you want something more filling, try serving it alongside a turkey and avocado sandwich or even some crispy bacon on the side for extra indulgence. The soup also works great as a starter before a main course like roasted chicken or pasta with pesto.
Storage Instructions
Refrigerate: This roasted tomato soup keeps beautifully in the fridge for up to 5 days in an airtight container. I actually think it tastes even better the next day after all those roasted flavors have had time to meld together. Just make sure to store the soup and gruyère toasts separately so the bread doesn’t get soggy.
Freeze: You can freeze this soup for up to 3 months in freezer-safe containers, leaving about an inch of space at the top for expansion. I like to freeze it in individual portions so I can thaw just what I need for a cozy lunch or dinner.
Warm Up: Reheat the soup gently on the stovetop over medium-low heat, stirring occasionally until it’s heated through. If it seems too thick after storing, just whisk in a splash of broth or cream. For the gruyère toasts, pop them under the broiler for a minute or two to get that cheese bubbly and golden again.
| Preparation Time | 10-15 minutes |
| Cooking Time | 45-55 minutes |
| Total Time | 55-70 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 1500-1700
- Protein: 35-45 g
- Fat: 80-95 g
- Carbohydrates: 170-190 g
Ingredients
For the roasted tomato soup:
- 6 roma tomatoes, halved
- 1 cup whole cherry tomatoes
- 1 medium yellow onion, roughly chopped
- 1 head garlic, cut in half (or 2 small heads for extra)
- 1/4 cup extra-virgin olive oil
- 1 cup vegetable or chicken broth
- 1/4 cup heavy cream (add more to taste)
- 5 large basil leaves, plus extra for garnish
- 1 tsp balsamic vinegar
- Kosher salt and black pepper (plus a little sugar if desired)
For the gruyère toasts:
- 1 french or sourdough baguette, thinly sliced
- Olive oil (for drizzling)
- Shredded gruyère cheese (enough to cover slices)
- Salt and pepper, to taste
Step 1: Roast or Simmer the Vegetables
- 6 roma tomatoes, halved
- 1 cup whole cherry tomatoes
- 1 medium yellow onion, roughly chopped
- 1 head garlic, cut in half (or 2 small heads for extra)
- 1/4 cup extra-virgin olive oil
- kosher salt and black pepper (plus a little sugar if desired)
Preheat your oven to 400°F if using the roasting method.
In an oven-safe dish, combine the halved roma tomatoes, cherry tomatoes, roughly chopped onion, halved head of garlic, extra-virgin olive oil, and a generous pinch of kosher salt and black pepper.
Toss everything well to coat.
Roast in the oven for 30-40 minutes until the vegetables are tender and the tomatoes are starting to burst and char.
Alternatively, you can place all these ingredients in a large pot on the stovetop over medium heat and simmer until the vegetables are soft and tomatoes have burst, stirring occasionally.
Step 2: Prepare the Cheesy Gruyère Toasts
- 1 french or sourdough baguette, thinly sliced
- olive oil (for drizzling)
- shredded gruyère cheese (enough to cover slices)
- salt and pepper, to taste
While the vegetables are roasting, thinly slice the baguette and arrange the slices on a baking sheet.
Drizzle each slice with a little olive oil, then generously cover with shredded gruyère cheese.
Season with salt and pepper.
Bake in the oven until the cheese is melted and the bread is golden and crispy, about 15 minutes.
Set aside the toasts until serving.
I like to make extra toasts for dipping — they go fast!
Step 3: Blend the Roasted Vegetables with Broth and Basil
- roasted tomato, onion, and garlic mixture (from Step 1)
- 1 cup vegetable or chicken broth
- 5 large basil leaves
Once the vegetables are roasted and tender, transfer them (including all the juices and oil from the pan) to a high-speed blender.
Squeeze the roasted garlic cloves out of their skins into the blender and discard the skins.
Add the vegetable or chicken broth and the large basil leaves.
Blend everything until smooth.
If you prefer a chunky texture, pulse the mixture a few times instead of blending completely smooth.
Step 4: Finish the Soup and Adjust the Seasoning
- blended soup (from Step 3)
- 1/4 cup heavy cream (add more to taste)
- 1 tsp balsamic vinegar
- kosher salt and black pepper (plus a little sugar if desired)
Pour the blended soup back into a clean pot (if needed) and reheat gently over medium-low.
Stir in the heavy cream and balsamic vinegar.
Taste and adjust salt, pepper, and add a little sugar if needed to balance acidity.
Heat through but do not boil.
For a more luxurious texture, I like to add a splash more cream or even swirl some in when serving.
Step 5: Serve the Soup with Cheesy Toasts
- cheesy gruyère toasts (from Step 2)
- extra fresh basil leaves
Ladle the hot soup into serving bowls.
Top with the crispy gruyère toasts (from Step 2) and garnish with extra fresh basil leaves.
Serve right away for the best flavor.
I like to serve with a few extra toasts on the side for dipping, and a drizzle of olive oil over the soup for extra richness.

Best Roasted Tomato Soup with Gruyère Toasts
Ingredients
For the roasted tomato soup:
- 6 roma tomatoes, halved
- 1 cup whole cherry tomatoes
- 1 medium yellow onion, roughly chopped
- 1 head garlic, cut in half (or 2 small heads for extra)
- 1/4 cup extra-virgin olive oil
- 1 cup vegetable or chicken broth
- 1/4 cup heavy cream (add more to taste)
- 5 large basil leaves, plus extra for garnish
- 1 tsp balsamic vinegar
- kosher salt and black pepper (plus a little sugar if desired)
For the gruyère toasts:
- 1 french or sourdough baguette, thinly sliced
- olive oil (for drizzling)
- shredded gruyère cheese (enough to cover slices)
- salt and pepper, to taste
Instructions
- Preheat your oven to 400°F if using the roasting method. In an oven-safe dish, combine the halved roma tomatoes, cherry tomatoes, roughly chopped onion, halved head of garlic, extra-virgin olive oil, and a generous pinch of kosher salt and black pepper. Toss everything well to coat. Roast in the oven for 30-40 minutes until the vegetables are tender and the tomatoes are starting to burst and char. Alternatively, you can place all these ingredients in a large pot on the stovetop over medium heat and simmer until the vegetables are soft and tomatoes have burst, stirring occasionally.
- While the vegetables are roasting, thinly slice the baguette and arrange the slices on a baking sheet. Drizzle each slice with a little olive oil, then generously cover with shredded gruyère cheese. Season with salt and pepper. Bake in the oven until the cheese is melted and the bread is golden and crispy, about 15 minutes. Set aside the toasts until serving. I like to make extra toasts for dipping — they go fast!
- Once the vegetables are roasted and tender, transfer them (including all the juices and oil from the pan) to a high-speed blender. Squeeze the roasted garlic cloves out of their skins into the blender and discard the skins. Add the vegetable or chicken broth and the large basil leaves. Blend everything until smooth. If you prefer a chunky texture, pulse the mixture a few times instead of blending completely smooth.
- Pour the blended soup back into a clean pot (if needed) and reheat gently over medium-low. Stir in the heavy cream and balsamic vinegar. Taste and adjust salt, pepper, and add a little sugar if needed to balance acidity. Heat through but do not boil. For a more luxurious texture, I like to add a splash more cream or even swirl some in when serving.
- Ladle the hot soup into serving bowls. Top with the crispy gruyère toasts (from Step 2) and garnish with extra fresh basil leaves. Serve right away for the best flavor. I like to serve with a few extra toasts on the side for dipping, and a drizzle of olive oil over the soup for extra richness.