Creamy Tomato Basil Soup
A velvety, restaurant-style tomato soup with fresh basil and a touch of cream. Pure cozy comfort in a bowl.

Is there anything more comforting than a bowl of warm, creamy tomato soup paired with a crispy grilled cheese? This is the homemade version that puts the canned stuff to shame. It's velvety, deeply tomato-y, balanced with fresh basil, and rich without being heavy. Best of all, it comes together with mostly pantry ingredients in about 40 minutes.
Growing up, tomato soup meant opening a red and white can. I loved it then, and honestly, I still have a soft spot for it. But once I tasted truly homemade tomato soup at a tiny bistro in San Francisco, I realized what I'd been missing. That soup haunted me until I figured out how to recreate it at home — and the secret turned out to be roasting the tomatoes first. That step alone transforms canned tomatoes into something deep, sweet, and almost meaty. Now this soup is on heavy rotation all fall and winter long. We dunk grilled cheese sandwiches into it on Sunday nights. I send it in thermoses to school for cold-day lunches. I make giant batches and freeze portions for whenever the cravings hit. It's the soup version of a hug.
What you'll need
- 012 (28 oz) cans whole San Marzano tomatoes
- 021 large yellow onion, diced
- 034 cloves garlic, minced
- 043 tablespoons olive oil
- 052 tablespoons unsalted butter
- 061 tablespoon tomato paste
- 071 teaspoon sugar
- 081 teaspoon dried oregano
- 091/2 teaspoon red pepper flakes (optional)
- 104 cups low-sodium chicken or vegetable broth
- 111/2 cup heavy cream
- 121/2 cup fresh basil, packed, plus more for serving
- 13Salt and pepper, to taste
- 14Grated parmesan, for serving
How to make it
- 1
Preheat the oven to 400°F. Drain the tomatoes (reserve the liquid) and spread them on a sheet pan. Drizzle with 1 tablespoon olive oil and a pinch of salt. Roast for 25 minutes, until caramelized at the edges.
- 2
Meanwhile, in a large pot, heat the remaining olive oil and butter over medium heat. Add the onion and a pinch of salt and cook until soft and translucent, about 8 minutes.
- 3
Add the garlic, tomato paste, oregano, and red pepper flakes. Cook for 1 minute until fragrant.
- 4
Add the roasted tomatoes, reserved tomato liquid, broth, and sugar. Bring to a simmer and cook for 15 minutes.
- 5
Stir in the fresh basil leaves.
- 6
Using an immersion blender (or transferring to a regular blender in batches), blend the soup until completely smooth.
- 7
Return to the pot, stir in the heavy cream, and warm through. Do not let it boil after adding the cream.
- 8
Taste and adjust seasoning with salt and pepper.
- 9
Ladle into bowls, top with fresh basil, a drizzle of olive oil, and grated parmesan. Serve with grilled cheese, if you're feeling fancy.
Tips from the kitchen
- 01
San Marzano tomatoes are worth the upgrade — they're sweeter and less acidic than regular canned tomatoes.
- 02
Roasting the tomatoes first is the single biggest flavor boost. Don't skip it.
- 03
For a dairy-free version, swap heavy cream for full-fat coconut milk. It works surprisingly well.
- 04
This soup freezes beautifully for up to 3 months. Freeze it before adding cream, then stir cream in when reheating.
Frequently asked
Can I use fresh tomatoes instead of canned?
You can, but only when tomatoes are at their absolute peak in summer. Otherwise, good canned tomatoes will give you better flavor.
Why is my soup too acidic?
Add a pinch more sugar or a splash more cream. A small piece of carrot cooked into the soup also helps mellow acidity.
Can I make this in a slow cooker?
Yes — sauté the onions and garlic first, then add everything except the cream to the slow cooker. Cook on low for 6 hours, blend, then stir in cream.


