Tomato soup is one of those comfort foods that just hits different on a cold day, you know what I mean ? I’ve been making this recipe for years now and it’s the one everyone asks for when they come over.
Here’s the thing—I used to think canned tomato soup was fine. Like, Campbell’s is a classic, right? But once I made homemade tomato soup, I literally can’t go back. The flavor is just SO much better.
Table of Contents :

Why This Tomato Soup Recipe Works :
Look, I’m gonna be honest—I tried making tomato soup from scratch a few times before I nailed this recipe. First attempt? Way too acidic. Second time I added too much cream and it tasted like… I don’t even know. Not good.
But this version? Perfect. The secret is roasting the tomatoes first, which brings out their natural sweetness and makes the whole soup taste richer. Game changer.
Plus, it’s actually pretty simple to make. You don’t need fancy equipment or weird ingredients. Just tomatoes, onions, garlic, and a few other basics you probably already have.
What You Need for Homemade Tomato Soup :
Here’s everything you need:

Fresh Tomatoes – About 3 to 3½ pounds. Any ripe tomatoes work, but Roma or plum tomatoes are great because they’re less watery. Good luck finding decent tomatoes this time of year though—I usually make this in late summer when tomatoes are actually good.
Olive Oil – 2-3 tablespoons. For roasting the veggies.
Onion – Half to one whole onion, diced. I use yellow onions usually.
Garlic – 4-5 cloves. I’m obsessed with garlic so I use way more than called for. Last Tuesday I completely burned the garlic because my neighbor knocked on the door right when I was sautéing it. Had to start over.
Butter – 2 tablespoons. Some recipes skip this but I think it makes the soup richer.
Flour – 2 tablespoons, optional. This thickens the soup slightly and gives it a better texture.
Vegetable or Chicken Broth – 2 to 2½ cups. I use whatever I have on hand.
Fresh Basil – A handful, about ¼ to ½ cup. You can’t beat the combination of tomatoes and basil. Reminds me of Sunday dinners at my grandma’s house.
Heavy Cream – ¼ to ½ cup, optional. Makes it creamy and delicious. You can also use coconut milk if you’re dairy-free and honestly you won’t taste the coconut.
Sugar – 1 tablespoon. Balances the acidity of the tomatoes.
Salt and Pepper – To taste. Sea salt if you’re fancy, regular salt if you’re normal like me.
Optional Stuff – Red bell pepper, smoked paprika, red pepper flakes, balsamic vinegar. I add red pepper flakes every time because I like a little kick.
How to Make the Best Tomato Soup :

This takes about an hour total but most of that is hands-off roasting time.
Step 1: Preheat your oven to 450°F. The key is—oh wait, I forgot to mention—you need to use a large rimmed baking sheet or the tomatoes will slide everywhere.
Step 2: Cut your tomatoes into halves or quarters depending on size. Smaller tomatoes get halved, bigger ones quartered.
Step 3: Toss the tomatoes, onion, and garlic with olive oil, salt, and pepper on your baking sheet. I throw in some red bell pepper too sometimes.
Step 4: Roast for about 25-30 minutes, stirring halfway through. In the last 2-3 minutes, turn on the broiler to get some char on the tomatoes. This is what makes the flavor SO good.
Step 5: While the tomatoes are roasting, melt butter in a large pot over medium heat. Wait, actually—make sure you use a non-reactive pot like stainless steel or enamel-coated cast iron. Regular aluminum or cast iron can react with the tomatoes and make your soup taste metallic. Learned that the hard way.
Step 6: If you’re making a roux (which I recommend), whisk flour into the melted butter and cook for about 30-60 seconds until it’s bubbly and lightly browned. This thickens the soup and gives it a better texture.
Step 7: Add your broth and sugar to the pot, whisking until smooth.
Step 8: Once the tomatoes are done roasting, add them to a blender with the fresh basil. Blend on high until completely smooth. It’ll look weird at first, kinda chunky and bright red, but that’s normal.
Step 9: Pour the blended tomato mixture into the pot with the broth. Stir everything together.
Step 10: Simmer over medium-low heat for about 15-20 minutes. This lets all the flavors meld together.
Step 11: Stir in the heavy cream if using. Some people skip this step but I think it makes the soup way better.
Step 12: Taste and adjust the seasoning. Add more salt, pepper, or even a splash of balsamic vinegar if it needs it.
Total time from start to finish? About 45 minutes to an hour.
My Real Tips for Perfect Tomato Soup :
Roasting Is Essential
Don’t skip the roasting step. I tried making this once with just sautéed tomatoes and it was nowhere near as good. Roasting caramelizes the natural sugars in the tomatoes and gives the soup incredible depth of flavor.
Use a High-Powered Blender
If you have a Vitamix or similar blender, use it. It makes the soup SO smooth and creamy. If you only have an immersion blender that works too, but the texture won’t be quite as silky.
Don’t Overcook the Garlic
Garlic burns super easily and burnt garlic is bitter and gross. Keep an eye on it when you’re sautéing and don’t let it brown too much.
Add Sugar If Needed
Tomatoes can be really acidic, especially if they’re not super ripe. A tablespoon of sugar balances that acidity perfectly. Some people use balsamic vinegar instead which also adds sweetness.
Make It Creamy or Keep It Light
Heavy cream makes this soup rich and indulgent. But honestly, it’s also delicious without any cream if you want to keep it lighter. I’ve made it both ways and both are great.
What to Serve with Tomato Soup :

Obviously, grilled cheese is the classic pairing. I don’t care what anyone says, this combination is unbeatable.
But you can also serve it with:
- Crusty bread for dipping
- Homemade croutons on top
- A simple green salad on the side
- Parmesan cheese grated over the top
- A drizzle of olive oil and fresh basil
My 8-year-old refuses to eat anything green, but somehow loves this soup. Goes through like two bowls every time I make it.
Storage and Freezing :
This tomato soup keeps in the fridge for up to 4 days in an airtight container. Just reheat it on the stove or in the microwave.
You can also freeze it for up to 3 months. I usually freeze it in individual portions so I can just thaw one serving at a time for quick lunches.
Wait, I almost forgot—if you’re planning to freeze it, do it BEFORE you add the cream. Cream can separate when frozen and reheated. Add it fresh when you’re ready to eat.
If you try this best tomato soup recipe, let me know how it turns out! Seriously, I want to hear if you love it as much as my family does. Drop a comment! 🙂
Happy cooking! (and may your garlic never burn) 🍅🍲
Best Tomato Soup Recipe
Best homemade tomato soup recipe with roasted fresh tomatoes, basil, garlic, and cream. Rich, flavorful, and easy to make in under an hour. Better than canned soup and perfect with grilled cheese sandwiches.
Ingredients
- 3 pounds fresh ripe tomatoes, cut into halves or quarters
- 3 tablespoons olive oil, divided
- 1 medium onion, diced
- 5 cloves garlic, peeled and chopped
- ½ teaspoon fine sea salt
- ¼ teaspoon black pepper, freshly ground
- 2 tablespoons salted butter
- 2 tablespoons all-purpose flour
- 1 tablespoon granulated sugar
- 2 ½ cups vegetable or chicken broth
- ¼ cup fresh basil leaves
- ¼ to ½ cup heavy cream (optional)
- ¼ teaspoon red pepper flakes (optional)
- Parmesan cheese for garnish (optional)
- Fresh basil for garnish (optional)
Instructions
- Step 1Preheat oven to 450°F. Prepare a large rimmed baking sheet.
- Step 2Cut tomatoes into halves (for small tomatoes) or quarters (for larger tomatoes).
- Step 3On the baking sheet, toss tomatoes, onion, and garlic with 2 tablespoons olive oil, salt, and pepper. Spread in a single layer and roast for 25-30 minutes, stirring halfway through.
- Step 4In the last 2-3 minutes of roasting, turn on the broiler to get some char on the tomatoes for deeper flavor. Watch carefully to prevent burning.
- Step 5While tomatoes are roasting, melt butter in a large non-reactive pot (stainless steel or enamel-coated cast iron) over medium heat. Whisk in flour and cook for 30-60 seconds until bubbly and lightly browned.
- Step 6Add vegetable or chicken broth and sugar to the pot, whisking until smooth and combined.
- Step 7Once tomatoes are done roasting, transfer them with all their juices to a high-powered blender. Add fresh basil leaves and blend on high speed until completely smooth (about 1 minute).
- Step 8Pour the blended tomato mixture into the pot with the broth. Stir well to combine. Simmer over medium-low heat for 15-20 minutes to let flavors meld together.
- Step 9Stir in heavy cream if using. Add red pepper flakes if desired for a slight kick.
- Step 10Taste and adjust seasoning with additional salt, pepper, or a splash of balsamic vinegar if needed. Serve warm, garnished with Parmesan cheese, a drizzle of cream or olive oil, and fresh basil. Pair with grilled cheese sandwich or crusty bread.
