There’s something comforting about tomato soup that takes me right back to childhood. But here’s the thing – you don’t need fresh tomatoes to make a really good soup. In fact, I prefer using canned tomatoes because they’re picked at peak ripeness and taste great all year round.
This recipe uses simple ingredients you probably already have in your pantry. A couple cans of whole peeled tomatoes, some onion, garlic, and a few other basics come together in about 30 minutes. The secret? A tiny bit of baking soda to cut the acidity and make it taste smoother. Add some cream at the end, and you’ve got soup that’s way better than anything from a can.
Perfect for a quick weeknight dinner or meal prep for the week. Pair it with a grilled cheese sandwich and call it a day.

Why You’ll Love This Tomato Soup
- Ready in under 45 minutes – This homemade tomato soup comes together quickly on your stovetop, making it perfect for busy weeknights when you’re craving something warm and comforting.
- Pantry-friendly ingredients – Using canned tomatoes means you can make this soup any time of year without waiting for fresh tomatoes to be in season, and most of the ingredients are probably already in your kitchen.
- Rich, restaurant-quality flavor – The combination of San Marzano tomatoes, fresh garlic, rosemary, and a touch of cream creates a depth of flavor that tastes like it took hours to make.
- Naturally vegetarian – Made with vegetable broth, this soup is a satisfying meatless meal that pairs perfectly with grilled cheese or crusty bread for dipping.
What Kind of Canned Tomatoes Should I Use?
San Marzano tomatoes are the gold standard for tomato soup because they’re naturally sweeter and less acidic than regular canned tomatoes. If you can find authentic San Marzano tomatoes from Italy (they’ll have a DOP certification on the label), grab those, but San Marzano-style tomatoes from your regular grocery store will work just fine too. Whole peeled tomatoes are better than diced or crushed for this recipe since you have more control over the final texture, and they tend to have better flavor since they’re processed less. Whatever you choose, make sure to get good quality canned tomatoes since they’re the star of this soup – it’s worth spending a little extra for a brand that tastes great.

Options for Substitutions
This tomato soup is pretty forgiving when it comes to swapping ingredients:
- San Marzano tomatoes: If you can’t find San Marzano tomatoes, regular canned whole peeled tomatoes work just fine. You can also use crushed tomatoes, though the texture will be slightly different from the start.
- Heavy cream: For a lighter option, try half-and-half or whole milk. If you’re dairy-free, coconut cream or cashew cream make good substitutes – just add them gradually and taste as you go.
- Vegetable broth: Chicken broth works perfectly here if that’s what you have. You can even use water in a pinch, though the soup will be less rich.
- Fresh rosemary: Dried rosemary can replace fresh – just use about 1 teaspoon instead of 2 teaspoons, as dried herbs are more concentrated. Basil or thyme also work nicely if you prefer a different herb profile.
- Yellow onion: White or sweet onions are easy swaps here. Shallots work too, though you might want to use a bit more since they’re milder.
- Olive oil: Any neutral cooking oil or butter can replace the olive oil for sautéing the onions.
Watch Out for These Mistakes While Cooking
The biggest mistake people make with tomato soup is rushing the tomato paste step – if you don’t cook it long enough (a full 4-5 minutes), it stays raw and bitter instead of developing that deep, sweet flavor you want.
Skipping the baking soda is another common error, as this small amount helps neutralize the acidity of the canned tomatoes and creates a smoother, less harsh taste.
When blending, be careful not to puree while the soup is still boiling hot with the lid fully sealed, since the steam can build up pressure and cause the lid to pop off – leave the lid slightly vented or let it cool for a minute first.
Finally, add the cream after you’ve removed the soup from the heat to prevent it from curdling, and taste before adding more salt since the tomato paste and broth already contain quite a bit.

What to Serve With Tomato Soup?
A grilled cheese sandwich is the obvious choice here, and I’m not mad about it – try using a combination of sharp cheddar and gruyere on sourdough for serious dipping action. If you want something a bit lighter, a simple arugula salad with shaved parmesan and a squeeze of lemon balances out the richness of the soup nicely. Crusty bread or garlic toast also works great for soaking up every bit of that creamy tomato goodness. For a heartier meal, I sometimes add a side of roasted vegetables or serve the soup alongside a caprese salad with fresh mozzarella and basil.
Storage Instructions
Store: This tomato soup keeps really well in the fridge for up to 5 days in an airtight container. I actually think it tastes even better the next day after all the flavors have had time to hang out together. Just wait until it cools down completely before you put it away.
Freeze: You can totally freeze this soup for up to 3 months. I like to freeze it before adding the cream, then stir that in when I reheat it so the texture stays nice and smooth. Freeze it in portions so you can grab just what you need for lunch or dinner.
Reheat: Warm it up gently on the stove over medium-low heat, stirring now and then until it’s hot all the way through. You can also microwave individual portions, but I’d do it in short bursts and stir between each one. If it seems a bit thick after storing, just add a splash of broth or water to loosen it up.
| Preparation Time | 10-15 minutes |
| Cooking Time | 20-30 minutes |
| Total Time | 30-45 minutes |
| Level of Difficulty | Easy |
| Servings | 4.5 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 850-1000
- Protein: 13-18 g
- Fat: 48-55 g
- Carbohydrates: 90-110 g
Ingredients
- 2 cups vegetable broth
- 1/2 cup heavy cream (makes it extra creamy and rich)
- 4 tbsp tomato paste (for concentrated flavor)
- 1 tsp sea salt
- black pepper to taste
- 1.5 cups diced yellow onion (about 1/2-inch pieces)
- 6 garlic cloves (freshly minced)
- 56 oz whole peeled tomatoes (I use San Marzano)
- 2 tsp fresh rosemary
- 1/4 tsp baking soda (neutralizes acidity for smoother taste)
- 1.5 tbsp extra virgin olive oil (or any neutral oil like canola)
- 1 tsp lemon juice
Step 1: Prepare the Aromatics and Build the Flavor Base
- 1.5 tbsp extra virgin olive oil
- 1.5 cups diced yellow onion
- 4 tbsp tomato paste
- 1 tsp sea salt
Heat the olive oil in a large pot over medium heat.
Add the diced onions and cook for 5-7 minutes, stirring occasionally, until they become soft and translucent.
Once the onions are tender, add the tomato paste and sea salt, then stir constantly for 4-5 minutes until the tomato paste deepens in color and caramelizes slightly—this concentrated cooking step is crucial for developing rich, complex flavor.
I like to let the tomato paste stick to the bottom of the pot just a bit before stirring; it creates deeper flavor compounds through the browning process.
Step 2: Add Aromatics and Spices
- 6 garlic cloves, freshly minced
- 2 tsp fresh rosemary
Add the minced garlic and fresh rosemary to the pot and stir continuously for about 1 minute, allowing the garlic to become fragrant but not browned.
This brief cooking time releases the aromatic oils from both ingredients and distributes their flavors throughout the base without allowing them to burn, which would create bitterness.
Step 3: Build the Soup Base
- 56 oz whole peeled tomatoes
- 2 cups vegetable broth
- 1/4 tsp baking soda
Pour the whole peeled tomatoes along with their juice and the vegetable broth into the pot, stirring to combine everything.
Break up the larger tomato pieces with the back of a wooden spoon as you stir.
Sprinkle the baking soda over the mixture—you’ll see it fizz slightly, which is exactly what you want; this chemical reaction neutralizes the acidity of the tomatoes and gives the final soup a smoother, more balanced taste rather than sharp or tangy.
Step 4: Simmer and Develop Flavors
- soup base from Step 3
Bring the soup to a simmer over medium heat, then reduce heat to low, cover the pot partially with a lid, and let it simmer gently for 20 minutes.
This extended cooking time allows all the flavors to meld together and the tomatoes to break down further, creating a more cohesive and developed flavor profile.
I find that partially covering the pot (leaving a small gap) prevents the soup from becoming too reduced while still allowing gentle evaporation.
Step 5: Blend Until Smooth
- simmered soup from Step 4
Remove the pot from heat and let it cool for 1-2 minutes.
Using an immersion blender, puree the soup until it reaches your desired consistency—I prefer a completely smooth soup, so I blend until there are no visible tomato chunks remaining.
If you prefer a chunkier texture, blend for less time.
Work the blender in overlapping motions throughout the pot to ensure even blending.
Step 6: Finish with Cream and Season to Perfection
- blended soup from Step 5
- 1/2 cup heavy cream
- 1 tsp lemon juice
- black pepper to taste
Stir in the heavy cream and lemon juice, then taste the soup and adjust seasoning with additional salt and black pepper as needed.
The lemon juice brightens the flavors and adds a subtle complexity that balances the richness of the cream without making the soup taste citrusy.
Stir well to fully incorporate the cream and create a uniform, silky texture.
Step 7: Serve
Ladle the hot soup into bowls and serve immediately.
If desired, garnish with a drizzle of cream, fresh rosemary, croutons, or a grilled cheese sandwich on the side.

Classic Tomato Soup with Canned Tomatoes
Ingredients
- 2 cups vegetable broth
- 1/2 cup heavy cream (makes it extra creamy and rich)
- 4 tbsp tomato paste (for concentrated flavor)
- 1 tsp sea salt
- black pepper to taste
- 1.5 cups diced yellow onion (about 1/2-inch pieces)
- 6 garlic cloves (freshly minced)
- 56 oz whole peeled tomatoes (I use San Marzano)
- 2 tsp fresh rosemary
- 1/4 tsp baking soda (neutralizes acidity for smoother taste)
- 1.5 tbsp extra virgin olive oil (or any neutral oil like canola)
- 1 tsp lemon juice
Instructions
- Heat the olive oil in a large pot over medium heat. Add the diced onions and cook for 5-7 minutes, stirring occasionally, until they become soft and translucent. Once the onions are tender, add the tomato paste and sea salt, then stir constantly for 4-5 minutes until the tomato paste deepens in color and caramelizes slightly—this concentrated cooking step is crucial for developing rich, complex flavor. I like to let the tomato paste stick to the bottom of the pot just a bit before stirring; it creates deeper flavor compounds through the browning process.
- Add the minced garlic and fresh rosemary to the pot and stir continuously for about 1 minute, allowing the garlic to become fragrant but not browned. This brief cooking time releases the aromatic oils from both ingredients and distributes their flavors throughout the base without allowing them to burn, which would create bitterness.
- Pour the whole peeled tomatoes along with their juice and the vegetable broth into the pot, stirring to combine everything. Break up the larger tomato pieces with the back of a wooden spoon as you stir. Sprinkle the baking soda over the mixture—you’ll see it fizz slightly, which is exactly what you want; this chemical reaction neutralizes the acidity of the tomatoes and gives the final soup a smoother, more balanced taste rather than sharp or tangy.
- Bring the soup to a simmer over medium heat, then reduce heat to low, cover the pot partially with a lid, and let it simmer gently for 20 minutes. This extended cooking time allows all the flavors to meld together and the tomatoes to break down further, creating a more cohesive and developed flavor profile. I find that partially covering the pot (leaving a small gap) prevents the soup from becoming too reduced while still allowing gentle evaporation.
- Remove the pot from heat and let it cool for 1-2 minutes. Using an immersion blender, puree the soup until it reaches your desired consistency—I prefer a completely smooth soup, so I blend until there are no visible tomato chunks remaining. If you prefer a chunkier texture, blend for less time. Work the blender in overlapping motions throughout the pot to ensure even blending.
- Stir in the heavy cream and lemon juice, then taste the soup and adjust seasoning with additional salt and black pepper as needed. The lemon juice brightens the flavors and adds a subtle complexity that balances the richness of the cream without making the soup taste citrusy. Stir well to fully incorporate the cream and create a uniform, silky texture.
- Ladle the hot soup into bowls and serve immediately. If desired, garnish with a drizzle of cream, fresh rosemary, croutons, or a grilled cheese sandwich on the side.