Cozy & Creamy Potato Soup: The Ultimate Classic Recipe
Nothing warms the soul quite like a steamy, velvety bowl of homemade potato soup. Simple, economical, and deeply comforting, this classic dish transforms humble root vegetables into a rich, restaurant-quality meal.
The secret to a truly outstanding potato soup lies in the balance of texture and flavor. Rather than blending the entire batch into a uniform puree, this recipe relies on a dual-texture method: half of the soup is blended until completely smooth, while the remaining half retains chunky bits of tender potato. Enhanced with a savory aromatics base, sharp cheddar cheese, and crispy bacon, this potato soup delivers big flavor in every single spoonful.
Why You’ll Love This Recipe
-
Dual-Texture Perfection: Blending part of the soup gives you a rich, thick base without needing heavy, floury roux, while leaving chunkier pieces for a satisfying bite.
-
Simple Ingredients: Made with affordable, easy-to-find kitchen staples like Russet potatoes, onions, garlic, and chicken or vegetable stock.
-
Customizable Top-Tier Garnishes: Tailor every bowl with classic toppings like sharp cheddar, crispy bacon, sliced chives, or a dollop of sour cream.
-
Quick & Weeknight-Friendly: Go from raw ingredients to a steaming bowl on the dinner table in under 45 minutes.
Ingredients
Soup Base
-
4 tablespoons (1/2 stick) unsalted butter
-
1 large yellow onion, finely diced
-
3 stalks celery, finely diced
-
2 large carrots, peeled and finely diced
-
4 cloves garlic, minced
-
1/4 cup all-purpose flour
-
4 cups (32 fl oz) low-sodium chicken broth (or vegetable broth)
-
3 pounds Russet potatoes, peeled and cut into 1/2-inch cubes (about 6 medium potatoes)
-
1 cup whole milk
-
1/2 cup heavy cream
-
1 teaspoon kosher salt (adjust to taste)
-
1/2 teaspoon freshly cracked black pepper
-
1/2 teaspoon smoked paprika
-
1/4 teaspoon dried thyme
Optional Garnishes
-
1 cup sharp cheddar cheese, freshly shredded
-
6 slices thick-cut bacon, cooked until crispy and crumbled
-
1/4 cup fresh chives or green onions, thinly sliced
-
1/2 cup sour cream
Step-by-Step Instructions
Step 1: Build the Aromatic Base
In a large Dutch oven or heavy-bottomed soup pot, melt the butter over medium heat. Add the diced onion, celery, and carrots. Saute for 6 to 8 minutes, stirring occasionally, until the vegetables are softened and the onions become translucent. Add the minced garlic and cook for another 60 seconds until fragrant, taking care not to let the garlic brown.
Step 2: Form the Roux
Sprinkle the all-purpose flour over the cooked vegetables. Cook for 1 to 2 minutes, stirring constantly, to raw flour taste out of the roux. The flour will form a paste around the vegetables.
Step 3: Simmer the Potatoes
Gradually pour in the chicken broth, whisking constantly to prevent any lumps from forming. Add the cubed Russet potatoes, salt, black pepper, smoked paprika, and dried thyme. Bring the mixture to a boil over medium-high heat. Once boiling, reduce the heat to low, cover the pot with a lid, and simmer gently for 15 to 20 minutes, or until the potatoes are fork-tender and easily pierced with a knife.
Step 4: Blend for Desired Texture
Remove the pot from the heat. To achieve the perfect texture, use an immersion blender directly in the pot to blend roughly half of the soup. Alternatively, carefully transfer about 3 cups of the soup to a stand blender, process until smooth, and stir it back into the pot. You want a thick, creamy broth with plenty of soft potato chunks remaining.
Step 5: Stir in Cream & Finish
Return the pot to low heat. Stir in the whole milk and heavy cream. Simmer gently for 3 to 5 minutes until heated through—do not bring the soup back to a hard boil after adding the dairy. Taste and adjust seasoning with additional salt and pepper if needed.
Step 6: Serve
Ladle the hot soup into warm bowls. Top generously with shredded cheddar cheese, crumbled bacon, sliced chives, and a dollop of sour cream if desired.
Expert Tips & Variations
Choosing the Right Potato
For classic potato soup, Russet potatoes are the undisputed king. Their high starch content breaks down during cooking, creating a naturally thick, velvety texture. If you prefer potatoes that hold their shape completely without breaking down, Yukon Golds make a great alternative with a rich, buttery flavor. Avoid waxy potatoes like Red Bliss, as they won’t absorb the flavors or creaminess as well.
Ingredient Substitutions & Variations
| Ingredient | Swap/Substitution | Culinary Result |
| All-Purpose Flour | 1:1 Gluten-Free Flour or Cornstarch slurry | Makes the soup entirely gluten-free without losing body. |
| Heavy Cream | Full-fat Greek Yogurt or Sour Cream | Adds a lighter, tangier profile to the broth. |
| Chicken Broth | Organic Vegetable Broth | Makes the soup 100% vegetarian friendly. |
| Bacon Fats | Cook bacon first, use rendered fat for sautéing | Infuses a smoky depth into the aromatic vegetable base. |
Timeline & Preparation Overview
| Stage | Duration | Key Focus |
| Prep Time | 15 minutes | Chopping aromatics and peeling/cubing potatoes. |
| Cook Time | 25 minutes | Sautéing aromatics, simmering potatoes, and blending. |
| Total Time | 40 minutes | Complete soup ready for topping and serving. |
Storage & Make-Ahead Notes
-
Refrigeration: Store cooled leftover soup in an airtight container in the refrigerator for up to 4 days.
-
Reheating: Reheat gently over medium-low heat on the stovetop, stirring occasionally. Add a splash of broth or milk if the soup has thickened too much in the fridge. You can also microwave individual portions in 45-second intervals, stirring between rounds.
-
Freezing Note: Because this recipe contains dairy (milk and heavy cream), freezing can sometimes cause the soup to separate or become grainy upon thawing. If you plan to freeze this soup, prepare it through Step 4 without adding the milk and cream. Freeze for up to 3 months. Once thawed and reheated, stir in the fresh dairy right before serving.
Nutrition Information
Nutrition estimated per serving (based on 6 main-course servings, excluding optional toppings):
-
Calories: 380 kcal
-
Protein: 9g
-
Fat: 18g
-
Saturated Fat: 11g
-
Carbohydrates: 47g
-
Fiber: 5g
-
Sugar: 6g
-
Sodium: 680mg

