Hey friends!
Feeling a little chilly or just craving something cozy? I’ve got the perfect solution for you.
Today, I’m sharing my creamy tomato soup with evaporated milk.
It’s warm, comforting, and so easy to whip up.
Plus, it’s a great way to enjoy that rich tomato flavor!
Grab a bowl, and let’s dive in!

Possible Ingredient Alternatives
Butter can be replaced with olive oil or coconut oil for a dairy-free option. Use the same amount as called for in the recipe. This substitution maintains the rich mouthfeel while potentially offering heart-healthy benefits.
Evaporated milk can be substituted with full-fat coconut milk for a vegan alternative. Use the same quantity as the recipe specifies. Coconut milk provides a creamy texture and subtle sweetness that complements the tomato flavor.
All-purpose flour can be swapped with cornstarch or arrowroot powder for a gluten-free thickener. Use half the amount of cornstarch or arrowroot as flour called for in the recipe. These alternatives will achieve a similar thickening effect without altering the flavor significantly. Whisk the cornstarch or arrowroot with a small amount of cold liquid before adding to the soup to prevent clumping.
| Preparation Time | 10-15 minutes |
| Cooking Time | 45-60 minutes |
| Total Time | 55-75 minutes |
| Level of Difficulty | Easy |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 800-900
- Protein: 20-25 g
- Fat: 50-60 g
- Carbohydrates: 70-80 g
Ingredients
For the soup base:
- 1 tbsp vegetable oil (or any other neutral oil like canola)
- 1/4 tsp dried thyme
- a few dashes of black pepper
- 28 oz can tomato purée (I use Cento tomato purée)
- 1/2 tsp dried basil
- 1 cup finely chopped onions
- 5 tbsp unsalted butter (I like Kerrygold unsalted butter for this)
For the thickening slurry:
- 2 cups chicken broth
- 3 tbsp all-purpose flour
For finishing the soup:
- 1/4 tsp baking soda
- 1 to 3 tbsp sugar (adjust to your preferred sweetness)
- 1/2 tsp salt
- 1 1/2 cups evaporated milk (makes it extra creamy and rich)
Step 1: Sauté the Onions
In a large saucepan, heat the butter and vegetable oil over medium heat.
Add the onion and sauté until it’s softened and golden, which should take about 10 minutes.
Stir occasionally to prevent burning and ensure even cooking.
Step 2: Simmer the Tomato Mixture
Introduce the tomatoes, basil, thyme, and black pepper into the saucepan with the onions.
Bring the mixture to a simmer over medium heat and cook for an additional 10 minutes, allowing the flavors to meld together.
Step 3: Thicken the Soup
In a small bowl, combine the flour and broth, whisking until smooth to create a slurry.
Add this slurry to the simmering soup, stirring constantly to prevent lumps from forming.
Once combined, cover the saucepan and let the soup simmer slowly for 25 minutes, stirring occasionally to avoid sticking.
Step 4: Blend the Soup (if needed)
If you’ve used diced tomatoes, purée the soup using a blender or food processor until smooth, or blend directly in the pot with a hand blender.
If you’ve used tomato purée, blending is optional as the onion bits will add texture to the soup.
Step 5: Final Touches and Serve
Return the soup to the saucepan if you removed it for blending.
Set the heat to low-to-medium.
Stir in the baking soda (be prepared for the soup to foam up briefly), then add the sugar, milk, and salt.
Continue heating to a bare simmer, stirring constantly to prevent the milk from curdling.
Once heated through, serve the soup hot.
Enjoy the rich, comforting flavors of this homemade tomato basil soup!

