Ingredients
For the soup:
- 2 tablespoons olive oil
- 1 medium yellow onion, diced
- 3 garlic cloves, minced
- 1 can (28 oz) whole San Marzano tomatoes, crushed by hand
- 2 cups low-sodium vegetable broth
- 1 teaspoon dried oregano
- 1/2 teaspoon smoked paprika
- 1/2 cup heavy cream
- 2 tablespoons tomato paste
- Salt and freshly ground black pepper to taste
- 1 tablespoon sugar (optional, to balance acidity)



For garnish:
- 1/4 cup fresh basil leaves, chiffonade
- 2 tablespoons grated Parmesan cheese
- Croutons or crusty bread for serving
Instructions
- Prepare the base: Heat olive oil in a large pot over medium heat. Add diced onion and cook for 5-7 minutes until translucent and fragrant.
- Add aromatics: Stir in minced garlic and cook for another minute until fragrant. Add tomato paste and cook for 2 minutes, stirring constantly.
- Build the soup: Add crushed tomatoes with their juices, vegetable broth, oregano, and smoked paprika. Bring to a boil, then reduce heat and simmer for 20-25 minutes.
- Blend for smoothness: Using an immersion blender, puree the soup until smooth. Alternatively, carefully transfer to a regular blender in batches and blend until smooth.
- Finish with cream: Return soup to pot if using regular blender. Stir in heavy cream and season with salt, pepper, and sugar if needed. Simmer for 5 more minutes.
- Serve: Ladle into bowls and garnish with fresh basil chiffonade and grated Parmesan. Serve with crusty bread or croutons.



Recipe Notes
- Prep Time: 15 minutes
- Cook Time: 35 minutes
- Total Time: 50 minutes
- Serves: 4-6 people
- Difficulty: Easy



Tips:
- Use San Marzano tomatoes for the best flavor
- For a dairy-free version, substitute coconut cream for heavy cream
- The soup can be made ahead and refrigerated for up to 3 days
- For extra richness, add a pat of butter before serving