This classic homemade tomato soup is rich, velvety, and deeply flavorful, made with whole peeled San Marzano tomatoes, sautéed onion and garlic, and finished with a swirl of heavy cream. It comes together in just 40 minutes using pantry-friendly ingredients, blends into a silky smooth bowl that beats anything from a can, and pairs perfectly with a grilled cheese sandwich for the ultimate comfort meal.
Large heavy-bottomed pot or Dutch oven At least 5 quart capacity
Immersion blender Preferred for blending directly in the pot
Countertop blender (optional) Can be used instead of immersion blender
Wooden spoon or silicone spatula
Measuring cups and spoons
Chef's knife and cutting board
Ladle
Fine-mesh strainer (optional) For extra-silky texture
Ingredients
2tablespoonsunsalted butter28g
1tablespoonolive oil15ml
1medium yellow onionroughly chopped
4garlic clovesminced
1/4teaspoonred pepper flakesoptional, for heat
2cans (28 oz each)whole peeled San Marzano tomatoes2 x 794g cans, including all liquid
1 1/2cupschicken broth355ml; substitute vegetable broth for vegetarian
1teaspoonsugar
1teaspoondried basil
1/2teaspoondried oregano
1/2teaspoonsaltplus more to taste
1/4teaspoonblack pepper
1/3cupheavy cream80ml; see notes for dairy-free substitutes
For Garnish
fresh basil leavesoptional
heavy cream drizzleoptional, for serving
black pepperfreshly cracked, optional, for serving
Instructions
Roughly chop the onion, mince the garlic, and open both cans of tomatoes. Measure out all remaining ingredients and set them next to the stove before turning on the heat.
Melt the butter with the olive oil in a large pot over medium heat, then add the onion and cook for 8 to 10 minutes until soft and translucent. Add the garlic and red pepper flakes and stir for 1 to 2 minutes until fragrant.
Pour in both cans of tomatoes (including the liquid), roughly crushing the whole tomatoes as you add them, then pour in the broth. Stir in the sugar, dried basil, oregano, salt, and black pepper.
Bring the soup to a boil over medium-high heat, then reduce to a gentle simmer over low heat. Cook uncovered for 15 to 20 minutes, stirring occasionally, until the tomatoes have broken down and the flavors have melded.
Remove the pot from the heat and blend the soup with an immersion blender until completely smooth, about 60 to 90 seconds; if using a countertop blender, work in batches with the lid held down firmly. For extra-silky texture, strain through a fine mesh strainer.
Return the blended soup to low heat, pour in the heavy cream in a slow stream while stirring, then simmer gently for 3 to 5 minutes. Taste and adjust salt, pepper, or sugar as needed; do not boil after adding the cream.
Ladle the hot soup into bowls and garnish with fresh basil leaves, a drizzle of cream or olive oil, and a crack of black pepper if desired. Serve immediately with crusty bread or grilled cheese.
Notes
Use DOP-certified San Marzano tomatoes for the best flavor. They are sweeter and less acidic than standard canned tomatoes and make a noticeable difference in the final soup.
Do not skip the teaspoon of sugar. It balances the natural acidity of the tomatoes without making the soup taste sweet, and is one of the most important seasoning adjustments in this recipe.
Let the onion sauté fully for 8 to 10 minutes. Rushing this step leaves a sharp, slightly raw onion flavor in the finished soup. The onion should be soft, translucent, and lightly golden.
Do not boil the soup after adding the cream. High heat can cause the cream to separate and curdle. Keep the heat at a gentle simmer once the cream is stirred in.
For a dairy-free version, replace the butter with olive oil and substitute the heavy cream with full-fat coconut milk or cashew cream. Use vegetable broth instead of chicken broth.
Toss a Parmesan rind into the pot during the simmering stage for extra depth of flavor. Remove it before blending.
To thicken the soup, add 1/2 cup diced peeled potato along with the tomatoes and broth, then blend it in. Alternatively, stir in 1 tablespoon of tomato paste when adding the canned tomatoes.
Storage: refrigerate in an airtight container for up to 4 to 5 days, or freeze for up to 3 months. For best results when freezing, omit the cream and stir it in fresh when reheating.
Reheat gently over medium-low heat on the stovetop, stirring occasionally, until steaming. Avoid bringing to a full boil after the cream has been added.
For a roasted tomato variation, spread the canned tomatoes, onion, and garlic on a sheet pan, drizzle with olive oil, and roast at 400°F (200°C) for 30 to 35 minutes before adding to the pot. This adds a deeper, caramelized flavor.