Best-Ever Homemade Tomato Soup

Today, I’m sharing my very best tested-till-perfected Tomato Soup Recipe. 

I have ventured many attempts at finding a tomato soup recipe I like. The best homemade tomato soup recipe out there, if you will. I’ve tried roasting the tomatoes. Tomato soup thickened with bread crumbs. Tomato soup with canned tomatoes. Tomato soup with fresh tomatoes. Tomato soup with heavy cream. Tomato soup with Indian spices. The recipes I’d tried just weren’t cutting it. Until I found this one.

This one was different.

3 small bowls of homemade tomato soup on white tablecloth

I think the reason I have curled my nose up at every previous attempted tomato soup, is because they are simply too harsh. I felt like I was eating thin marinara sauce by the spoonful. That acidic brightness is welcome when contrasted with bland pasta or other ingredients to round it out, but it isn’t what I want in a tomato soup. This is why I’ve always loved the sweet, mild flavour of the canned stuff.

I really hesitated before trying yet another tomato soup recipe.

It’s creamy (but not cloying, actually it has no cream). Mild and soothing. The perfect balance of tomato and dairy.

It is thickened with flour, the acidity of the tomatoes is curbed by baking soda, and there is almost as much milk as there are tomatoes.

I know, you’re skeptical. I don’t blame you. Flour and baking soda in soup?

Just trust me on this, okay?

Wondering why this heavenly homemade soup is so orange? My super high-power Pro Vitamix blasts my soups to silky smoothness, and the air it whips in lightens the colour quite a bit.

How to Make The Best Tomato Soup

  1. You can use fresh or canned tomatoes, I have used both with great results. If using fresh, start by dropping the scored tomatoes in boiling water to peel them easily. (Scoring tomatoes simply requires that you cut an x into the bottom of the tomato with a paring knife.)
  2. Then, we develop some flavour by sauteeing some onions, just until translucent. The flavour should be mild – no browning.
  3. Add some flour and cook out the starch, then whisk in milk, tomatoes, baking soda and a bit of sugar. The baking soda keeps the acid from curdling the milk in addition to mellowing out the flavour. The sugar enhances the sweetness of the tomatoes.
  4. Simmer 10 minutes or so, then puree with your blenderalternatively, an immersion or regular blender will also work. It couldn’t be simpler or faster.

Tips for Making Tomato Soup

You may have noticed that there is no garlic added, not a basil leaf to be found. And before you’re tempted to add them, just trust me. I tried both ways. Without the added frills is simplicity, perfected.

You could splurge and use cream rather than milk, but I find milk makes it lovely and creamy without being rich.

More Must-Try Soup Recipes

French Onion Soup with Giant Brie Croutons

Hot and Sour Thai Chicken Noodle Soup

Tomato, Beef and Macaroni Soup

Creamy Potato Soup

Glowing Turmeric Chicken Noodle Soup

Creamy Homemade Tomato Soup Recipe

Prep Time 10 mins
Cook Time 10 mins
Servings 6


  • 4 tbsp butter
  • 1/2 cup diced onion
  • 2 tbsp all-purpose flour
  • 2 cups milk preferably whole
  • 1/4 tsp baking soda
  • 3 1/2 cups diced tomatoes include the juice if using canned; if using fresh and you have a good blender, no need to peel them
  • 2 tsp granulated sugar
  • salt to taste (I use about 2 tsp kosher salt, but it really depends if the butter and tomatoes had salt)


  • Heat the butter in a large pot over medium heat. Add onion and cook until softened and translucent (not browned), about 6 minutes. Stir in flour, cook one minute, then gradually whisk in milk. Add baking soda, tomatoes and sugar. Simmer 10 minutes, then blend (either with an immersion blender, or in small batches in a regular blender - careful, hot liquids will explode out if you overfill!). Add salt by pinches, tasting as you go until soup tastes vibrant and well-seasoned.
5 6 votes
Article Rating
Notify of
Newest Most Voted
Inline Feedbacks
View all comments
3 years ago

5 stars
OMG Jenn, This recipe REALLY is the best and fastest. I added some basil because tomatoes taste so good with basil, otherwise perfect. Thank you!!!

2 years ago

Can this be frozen?

11 months ago

5 stars
So tasty, so simple! Not one for leaving reviews really (anywhere), but this was so creamy and delicious, about to make again! And… I have shared with anyone who will listen! Thank you so much!

Karin Hulston
Karin Hulston
9 months ago

5 stars
Lovely soup xx

9 months ago

This looks amazing! Going to try it tonight. What did you garnish it with at the end? (the black bits in the picture)

7 months ago

5 stars
The name of this soup…Best-Ever…really is the best ever!!! It is a frequent request by my family. So good no need to change this recipe at all!!! Thank you for the best ever tomato soup!!!

6 months ago

I never leave comments, but this one is good! I added two pinches of pepper and paprika for a little kick. My husband asked me if I actually made this from scratch because it was so delicious!

4 months ago

5 stars
Ooooh. So I’ve grown an entire farm’s worth of tomatoes this year despite a) living on my own and b) not really eating that many tomatoes *slaps forehead*. I’m really not a tomato sauce gal either and honestly, I am so done with them raw, but I do love a bit of Heinz cream of tomato. So I had a search for a recipe and saw your name pop up in the results. Your food always looks great on Insta so I came in for a read. Woah, totally unusually method and ingredients – colour me intrigued! Anyway I made the recipe for dinner tonight and, I’m blown away – it was so good! I gave it a quick strain after blitzing because my blender ain’t fancy and I threw in a bunch of cherry toms with the skin on. I dunked a ham and mozzarella toastie to make it a full meal and I’m already debating making some more tomorrow. Fab recipe, thanks for sharing!

Join the Foodess Tribe

Be the first to get new recipes and science-based cooking and baking tips straight to your inbox for free

Would love your thoughts, please comment.x