This easy creamy tomato soup blends caramelized onions, garlic, and ginger with tomatoes and coconut milk (or heavy cream) for a smooth, rich texture. Topped with crispy shallots, toasted cashews, and basil, it’s a warm and comforting recipe for chilly days. Serve it with a crusty slice of bread, mixed green salad, or bacon & cheese scones.

Recipe Highlights
- Quick and easy: This tomato soup is made with simple pantry staples, expertly combined to create a rich, deep, and well-balanced flavor as well as a creamy, smooth texture. If you love creamy soups, be sure to try my creamy sausage tortellini soup and coconut milk-based Thai red curry noodle soup next!
- Vegetarian, vegan, dairy-free, and gluten-free: Coconut milk provides a creamy consistency without dairy and without compromising flavor!
- Restaurant-quality presentation: Crispy shallots, toasted cashews, and fresh basil transform this homemade tomato soup into a restaurant-quality dish that stands out from others online!
- Meticulously tested: This recipe has been rigorously tested to ensure perfect flavor and foolproof instructions.
- Well-balanced flavor and texture: Tomato soups can be naturally acidic, so using the right ingredients is key to achieving a well-balanced flavor. I caramelize onions, garlic, and ginger, then add full-fat coconut milk (or heavy cream) to balance the natural sweetness and acidity of San Marzano tomatoes. I then blend the soup until smooth and garnish it with crispy shallots, toasted cashews, fresh Thai basil, and a drizzle of shallot-infused coconut oil. What you get is a soup with deep flavor, creamy consistency, and crunchy texture from cashews and crispy shallots.

Ingredient Notes & Substitutions
- Tomatoes: I used canned, San Marzano tomatoes – whole, crushed by hand. Fire roasted tomatoes or even crushed tomatoes work just as well. If you have fresh tomatoes, you can roast them in your oven prior to putting them in the soup or you can cut “X’s” on the bottom of your tomatoes, par boil, and peel the skins off, crush with your hands or a wooden spoon, then add them to your soup.
- Cream: You can make this a more classic tomato soup recipe and use heavy cream if you like! Just replace the coconut milk with the same amount of cream.
- Lite Coconut Milk: You can also use Lite Coconut Milk if you are watching the calorie intake. The soup will be a little more viscous but taste just as good.
- Neutral Oil: The coconut oil really adds another layer of deliciousness to this soup, but using canola or vegetable oil will be just as good.
- Garlic: If you like, feel free to fry garlic instead of shallots. The same rules apply to the garlic as the shallots. The very moment you see browning, remove them from the oil.
- Ginger powder: Ginger powder is not as intense as fresh ginger, so add about 1-2 teaspoons as a substitute.
- Italian Basil: Thai basil has a very unique floral and anise flavor that melds very well with coconut. However, Italian basil is totally fine to use too!
- Nuts/Seeds: Almonds, pine nuts, or pistachios would work well with this recipe to replace the cashews.


Frequently Asked Questions
Can I use a different type of milk instead of coconut milk?
Yes, you can substitute coconut milk with heavy cream, half-and-half, or a non-dairy milk like cashew, almond or oat milk.
Can I use canned tomatoes for this soup?
I used canned San Marzano whole tomatoes (crushed by hand). You can also use fire-roasted or crushed tomatoes. If you want to use fresh tomatoes, roast them first or blanch, peel, and crush before adding to the soup.
How to balance acidity in a tomato soup?
Add a fat source like more coconut milk or heavy cream and/or a small amount of sweetener such as honey or brown sugar. A pinch of baking soda can neutralize acidity. Also, I use caramelized onions, garlic, or ginger in this recipe to add natural sweetness.
Can I eat this hot or cold?
Honestly, either is great! Hot is a lot better than cold, but both ways are delicious no matter what.
How to make it spicy?
Add Thai chilis, chile powder, or any spicy hot sauce to the tomato soup at the simmering stage. You can also use your desired spice as a garnish as well.
How can I make this soup thicker?
You can blend it longer, add a little more coconut milk, or stir in a small amount of cornstarch or mashed cooked sweet potato to help thicken it.
What supplies and equipment do I need?
You will need a cutting board, knife, small pan, large pot, baking sheet, parchment paper, and immersion blender (or food processor).

Tomato Soup Serving Suggestions
- Bread. Classic options include grilled cheese sandwiches, crusty sourdough, or buttery brioche toast for dipping. You can also serve this creamy tomato soup with my bacon and cheese scones, garlic knots, or parmesan biscuits.
- Salad. Serve it with a simple mixed greens salad with balsamic vinaigrette. Or, try one of my salads, like this orzo salad or savory-sweet pear spinach salad.

Storage Instructions
- Refrigerate: The cooled soup with no garnishes can be stored in an airtight container for up to 5 days.
- Reheat: Place the leftovers in a microwave-safe bowl and heat in the microwave in increments of 30 seconds to 1 minute until it reaches your desired temperature.
- Freeze: You are welcome to freeze the soup without garnishes in an airtight container. To do this, fill the container with the soup and leave about 1-2 inches of space at the top, then gently lay a piece of plastic wrap on top. It’s ok if it goes over the sides of your container, as long as there’s a seal between the soup and there aren’t any air bubbles. It will last up to 1 month in the freezer. To reheat, feel free to defrost in the microwave with the lid slightly ajar or place in your refrigerator overnight. Reheat as per the instructions above.

Creamy Tomato Soup
#wprm-recipe-user-rating-0 .wprm-rating-star.wprm-rating-star-full svg * { fill: #343434; }#wprm-recipe-user-rating-0 .wprm-rating-star.wprm-rating-star-33 svg * { fill: url(#wprm-recipe-user-rating-0-33); }#wprm-recipe-user-rating-0 .wprm-rating-star.wprm-rating-star-50 svg * { fill: url(#wprm-recipe-user-rating-0-50); }#wprm-recipe-user-rating-0 .wprm-rating-star.wprm-rating-star-66 svg * { fill: url(#wprm-recipe-user-rating-0-66); }linearGradient#wprm-recipe-user-rating-0-33 stop { stop-color: #343434; }linearGradient#wprm-recipe-user-rating-0-50 stop { stop-color: #343434; }linearGradient#wprm-recipe-user-rating-0-66 stop { stop-color: #343434; }
Ingredients
Cashews + Crispy Shallots
- 1 cup cashews roughly crushed or chopped
- 2 shallots thinly sliced
- ½ cup coconut oil melted, divided
- salt to taste
Tomato Soup
- 2 tablespoons coconut oil
- 1 large onion finely chopped
- 1 inch ginger peeled and minced
- 5 cloves garlic minced
- 28 oz canned whole tomatoes crushed by hand (I used 28 oz can – San Marzano tomatoes)
- 13.5 oz full-fat unsweetened coconut milk (400ml) – reserve 4 tablespoons for drizzling on top when serving
- 28 oz water using the San Marzano tomato can
- salt to taste
Garnishes
- Thai basil sprigs or roughly chopped
- shallot infused coconut oil from frying shallots
- salt and pepper to taste
Instructions
Cashews and Crispy Shallots
-
Preheat your oven to 375 degrees. Line a baking sheet with parchment paper. Toss the cashews in 1 tablespoon coconut oil and season with salt and pepper. Place the cashews evenly on the parchment paper lined baking sheet and place in the oven for about 5-8 minutes. Once toasted, remove from the oven and let cool on the baking sheet.
-
Prepare a plate or tray with paper towels and set aside.
-
In a small pan, pour your oil and heat on medium. Do not heat on high or you will burn your shallots.
-
Saute the shallots in the oil, constantly stirring, about 8-10 minutes. You may need to fry them in batches. With a slotted spoon, remove from heat once you see a slight browning and then put them on your paper towel lined plate or tray. Sprinkle immediately with salt and let cool while you prepare the soup. They will continue to brown and crisp up as they cool. Reserve the shallot/coconut oil for garnishing.
Tomato Soup
-
In a large pot, heat your coconut oil on medium-high heat and saute your onions with a generous pinch of salt until caramelized and brown, around 10 minutes. Next, add the garlic and ginger and saute until fragrant, about 2-3 minutes.
-
Add the tomatoes, coconut milk, and water. Bring to a boil, lower the heat to a simmer and cover, cooking for about 30 minutes. Once finished, using an immersion blender or blender, blend the soup until it’s smooth and creamy. Adjust with salt and pepper to taste.
Assembly
-
Ladle the soup into bowls, drizzle 1 tablespoon of coconut milk per bowl if using, shallot infused coconut oil, sprinkle with the toasted cashews, crispy shallots, and sprigs or roughly chopped Thai basil. Add salt and pepper to taste. Enjoy!
Nutrition
How to Make Tomato Soup (step-by-step photos)
Cashews & Crispy Shallots
Preheat oven to 375°F and line a baking sheet with parchment paper. Toss cashews with 1 tablespoon coconut oil, season with salt and pepper, and spread evenly on the sheet. Toast for 5-8 minutes, then let cool.

Heat oil in a small pan over medium (not high) heat. Fry shallots, stirring constantly, for 8-10 minutes until lightly browned. Remove with a slotted spoon and transfer to a paper towel-lined plate. Sprinkle with salt and let cool—they’ll crisp up as they rest. Save the shallot-infused oil for garnish.

Soup
In a large pot, heat coconut oil over medium-high and sauté onions with salt until caramelized (about 10 minutes). Add garlic and ginger, cooking until fragrant (2-3 minutes).

Stir in tomatoes, coconut milk, and water. Bring to a boil, then reduce to a simmer, cover, and cook for 30 minutes. Blend until smooth and creamy. Season with salt and pepper.

Assembly
Ladle soup into bowls. Drizzle with coconut milk (if using) and shallot-infused oil. Top with toasted cashews, crispy shallots, and Thai basil. Season to taste.


Explore More Soup Recipes
- Sausage White Bean Soup
- Thai Shrimp Soup
- Italian Sausage Orzo Soup with Mushrooms and Spinach
- Vegetable Beef Soup
- Butternut Squash and Sausage Soup with Spinach and Orzo