A silky, comforting tomato basil soup infused with parmesan cheese and a touch of cream for ultimate richness. This quick, one-pot recipe is low in carbs yet full of flavor, making it perfect for an easy lunch or dinner. Serve with grilled cheese or crusty bread for the ultimate cozy meal.
2cupschicken stockor vegetable stock for vegetarian
2cans28 ounces each whole San Marzano tomatoes, in juice
10fresh basil leavesabout ¼ cup, chopped
1cupgrated parmesan cheese
½cupheavy cream
Kosher saltto taste
Freshly ground black pepperto taste
Instructions
Gather and Measure Ingredients: Before you turn on the stove, assemble everything 4 tablespoons butter, 1 medium onion (finely chopped), 3 garlic cloves (grated or very finely minced), ¼ cup tapioca flour (or all-purpose flour), 2 cups chicken stock (or vegetable stock), two 28-oz cans whole San Marzano tomatoes (with juice), about 10 fresh basil leaves (chiffonade or roughly chopped, ~¼ cup), 1 cup freshly grated Parmesan, ½ cup heavy cream, and kosher salt + freshly ground black pepper. Also place your Dutch oven, whisk, wooden spoon, and immersion blender within reach. Prepping first keeps the cook focused and prevents overcooking — have the tomato cans opened and the parmesan grated so you can add ingredients without stopping mid-step.
Heat the Pot and Melt Butter: Place the Dutch oven over medium heat and add the 4 tablespoons of butter. Give the butter 30–60 seconds to melt and foam; watch carefully and tilt the pan so the butter coats the bottom. The goal is a glossy, warm fat without browning. If the butter starts to brown, lower the heat — you want a gentle, even surface for cooking the aromatics.
Sauté the Onions Until Translucent: Add the chopped onion to the melted butter and stir to coat. Season the onions with about 1 teaspoon kosher salt and ½–1 teaspoon freshly ground black pepper (you can fine-tune later). Cook over medium heat, stirring frequently, for 5–8 minutes. Look for the edges to soften and the center to turn translucent — you should smell a sweet, mellow onion aroma but not a caramelized, brown color. Use a wooden spoon to scrape any fond from the bottom occasionally.
Add Garlic and Bloom the Flavor: Push the onions to the side and add the grated or minced garlic. Cook the garlic for just 30–60 seconds, stirring constantly so it doesn’t stick or brown — the moment you smell a bright, fragrant garlic note, stop. Browning garlic becomes bitter; we only want it softened and aromatic so it contributes depth without harshness.
Build the Base with Flour (Roux Step): Sprinkle the ¼ cup tapioca flour evenly over the softened onions and garlic. Stir continuously to form a smooth paste — it will look a little glossy and will coat the vegetables. Cook this mixture for about 60 seconds to remove the raw flour taste. If you’re using all-purpose flour, the method is identical; cook until the raw smell disappears. This step adds body to the soup so it finishes silky rather than watery.
Whisk in Stock Slowly to Prevent Lumps: With the pot still warm, slowly pour in the 2 cups of chicken or vegetable stock while whisking vigorously. Add the stock a little at a time at first so the flour disperses smoothly — whisk until the mixture becomes a uniform liquid with no clumps, resembling a light gravy. Once the base is smooth, stop whisking and let it come to a gentle simmer for 1–2 minutes; this activates the thickening power of the flour and stabilizes the base.
Add Tomatoes, Basil, and Parmesan: Pour both cans (including juices) of whole San Marzano tomatoes into the pot. Use a wooden spoon to break up large tomato pieces so they start integrating into the stock. Add the chopped basil and the full cup of grated Parmesan now — the cheese will begin to melt and add umami and creaminess. Stir to combine, scraping any bits from the bottom. Season lightly and remember you’ll taste later Parmesan is salty, so go easy on additional salt at first.
Simmer to Concentrate and Meld Flavors: Bring the soup up to a gentle simmer (small, steady bubbles) and keep it there for 5–10 minutes. This is not a vigorous boil — just enough movement for the flavors to marry and the tomatoes to break down further. If a thin foam forms on top, skim it with a spoon for a cleaner finish. Taste at around 6 minutes to check seasoning and reduction; simmering for the full 10 minutes will deepen flavor and thicken slightly.
Blend to a Velvety Consistency: Remove the pot from heat. If you have an immersion blender, carefully immerse it and blend directly in the pot until smooth and completely uniform (about 30–90 seconds depending on your blender and desired silkiness). If using a stand blender, cool the soup for 3–5 minutes to reduce steam pressure, then blend in small batches with the lid vented (cover the lid with a clean kitchen towel and hold it down). Always point the vent away from you when lifting the lid. Blend until creamy and lump-free; for a slightly rustic texture, pulse briefly instead of fully puréeing.
Finish with Heavy Cream: Return the blended soup to low heat if necessary. Stir in ½ cup heavy cream slowly, and heat gently until everything is hot but not boiling — simmering cream can break and separate. The cream will add silkiness and round the acidity of the tomatoes. If you prefer a lighter soup, substitute half-and-half, but go slowly so you maintain the right mouthfeel.
Final Seasoning and Texture Adjustments: Taste carefully. Add more kosher salt or black pepper in small increments — remember Parmesan already contributes salt. If the soup tastes too acidic, a small pinch of sugar or a splash more cream can balance it. If it’s too thick, whisk in up to ½ cup additional stock until you reach your desired consistency. For a spicy kick, sprinkle in red pepper flakes a pinch at a time and re-taste.
Rest, Garnish, and Serve: Once seasoning is perfect, remove from heat and let the soup sit for 1–2 minutes to settle. Ladle into warmed bowls and garnish with a few basil chiffonade strips and a light grating of extra Parmesan. A tiny drizzle of good olive oil or a few croutons are optional finishing touches. Serve immediately with grilled cheese, crusty bread, or a crisp salad.
Cool and Store Leftovers Safely: To refrigerate, let the soup cool at room temperature no more than 1 hour, then transfer to an airtight container. Refrigerated soup will keep 4–5 days. For freezing, leave headspace in a freezer-safe container (the soup will expand) and freeze for up to 6 months. Thaw overnight in the fridge before reheating for best texture.
Reheat Without Losing Creaminess: Reheat gently on the stovetop over low-medium heat, stirring frequently. If the soup has separated slightly after chilling, whisk in a splash of stock or cream and heat slowly — this brings back the silkiness. Microwave reheating works too cover and heat in 60–90 second bursts, stirring between bursts to ensure even warmth.
Make-Ahead and Variation Tips: If prepping ahead, hold back 2–4 tablespoons of Parmesan and the cream — add them at the end when reheating for brighter cheese flavor. For a dairy-free version, swap cream for canned full-fat coconut milk and use nutritional yeast in place of Parmesan; use vegetable stock to keep it vegetarian. If you want a chunkier soup, reserve one can of tomatoes and fold in half their pieces after blending.
Notes
Tomato Choice Matters: For optimal flavor, use whole San Marzano tomatoes in juice — they offer perfect sweetness and balanced acidity. If unavailable, any high-quality canned plum tomatoes work well.
Flour Substitutes: Tapioca flour adds thickness without heaviness and keeps this soup lower in carbs. Arrowroot powder, gluten-free flour, or all-purpose flour are excellent alternatives. Skip flour entirely for a lighter consistency.
Basil Options: Fresh basil gives the soup vibrant flavor. If fresh isn’t available, use 2 tablespoons dried basil, adjusting for taste. Adding basil toward the end preserves its aroma.
Spice Variations: Red pepper flakes or a pinch of cayenne add a warming kick without overpowering the delicate balance of the soup.
Vegetarian & Dairy-Free Swaps: Use vegetable stock instead of chicken stock to keep the soup vegetarian. Replace cream with coconut milk and Parmesan with nutritional yeast for a dairy-free version.
Blending Tips: An immersion blender is easiest for blending directly in the pot, reducing cleanup. If using a stand blender, allow the soup to cool slightly before blending to avoid splattering.