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.
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.