A creamy potato soup recipe is the kind of cold-weather bowl that fixes a rough day without demanding fancy skills or hard-to-find items. This version leans on starchy russet potatoes, a proper roux, and whole milk to build a velvety base that holds its thickness without turning gluey. You get a one-pot dinner that scales easily and reheats better than most soups you'll cook this season.
The method below breaks down why each step matters, from sweating aromatics low and slow to blending only part of the batch for body. You'll also find swaps, storage times, and variations so the same creamy potato soup recipe can shift to fit what's in your fridge. Read through once before you start so the timing feels natural at the stove. If you enjoyed this, our black truffle pasta is worth trying next.
Why You'll Love These Creamy Potato Soup
- Thick texture from russet potatoes and a light roux, not from excess cream.
- One pot, around 40 minutes, and minimal cleanup after dinner.
- Freezes solid for up to 3 months without splitting if reheated gently.
- Flexible base that takes cheese, bacon, or herbs without losing structure.
- Budget friendly using pantry staples you likely already keep.
Ingredients You'll Need
- 2 tbsp unsalted butter — builds the roux and carries onion flavor.
- 1 medium yellow onion, diced — sweated for a sweet aromatic base.
- 2 cloves garlic, minced — added late to avoid bitter notes.
- 3 tbsp all-purpose flour — thickens the broth into a coat-the-spoon base.
- 4 cups russet potatoes, peeled and cubed — high starch gives the body.
- 3 cups low-sodium chicken broth — controls salt while building savory depth.
- 1 cup whole milk — adds richness without the weight of cream.
- 1/2 cup shredded cheddar — melts in at the end for a mild tang.
- 1 tsp salt — adjusted at finish after cheese goes in.
- 1/4 tsp black pepper — fresh ground keeps it bright.
- 2 tbsp chopped chives — fresh finish and a light onion note.
Ingredient Substitutions
Unsalted butter: Replace with an equal amount of olive oil if you want a dairy-free start. Oil won't brown the roux the same way, so the soup loses a faint nutty note and stays a touch lighter in color. Keep the heat at medium-low heat so the flour doesn't scorch before it can thicken the broth. Making this creamy potato soup at home is surprisingly straightforward once you know the key steps.
Whole milk: Use an equal volume of unsweetened oat milk for a vegan-friendly bowl. Oat milk thickens slightly less, so the final soup will pour a bit thinner and taste sweeter than dairy. Add it off the heat to keep the texture from breaking. The creamy potato soup works well for weeknight cooking when time is limited.
Russet potatoes: Swap in Yukon golds using the same weight if you prefer a waxier bite. Golds hold shape better, so blend only a third of the batch to reach the right consistency. The color stays more yellow and the flavor reads a little buttery.
Chicken broth: Replace with vegetable broth cup for cup to make the pot vegetarian. You'll lose some meaty depth, so add a pinch of nutritional yeast if you want a fuller savory note. The salt level may differ, so season at the end.
Cheddar: Use gruyere in the same half-cup measure for a sharper, more complex finish. Gruyere melts smoothly but costs more and browns faster, so stir it in off heat. The soup takes on a slightly nutty, restaurant-style edge.
Step-by-Step Instructions
- Melt the butter in a 4-quart pot over medium-low heat, then add the onion and cook 5 minutes until translucent with no browning.
- Stir in the garlic and cook 1 minute until fragrant, then sprinkle the flour across the pot and whisk 2 minutes until the raw smell fades and the mix turns pale gold.
- Pour in the broth slowly while whisking to avoid lumps, then add the potatoes and bring to a gentle simmer over medium heat, about 10 minutes to reach a low bubble.
- Cook 15–18 minutes until a cube breaks apart when pressed with a spoon and the edges look soft and yielding.
- Take the pot off the heat and blend two cups of the solids with a little liquid using an immersion blender until smooth and thick, then stir back in.
- Return to low heat, pour in the milk, and warm 3 minutes until steaming but not boiling to keep the dairy from curdling.
- Stir in the cheddar until melted and glossy, then season with salt and pepper and top with chives before serving.
Pro Tips
Peel russets fully because the skin stays tough after blending and shows as stringy bits in an otherwise smooth bowl. A clean peel keeps the final texture uniform.
Cook the roux the full two minutes even if it looks done early, since undercooked flour leaves a pasty taste that no amount of salt fixes. You want a faint toasted smell before the broth goes in.
Use an immersion blender instead of a counter model to avoid hot liquid erupting from a sealed pitcher. For deeper technique on safe blending, check immersion blender tips from Serious Eats.
Reserve a cup of cubed potato out of the blend if you like distinct pieces, then fold them back for contrast against the smooth base. The bechamel sauce method uses the same roux logic if you want a side reference.
Common Mistakes to Avoid
Boiling the milk stage hard makes the dairy split and turn grainy, so keep that step at low heat and pull it before a full boil. Gentle warming keeps the fat emulsified.
Adding salt before the cheese means you overshoot because cheddar carries sodium; taste after the cheese melts for a balanced bowl. This single check prevents a too-salty result.
Skipping the partial blend leaves a thin broth with floating cubes and none of the coat-the-spoon feel. Blend enough to thicken but keep some chunks for bite.
Serving Suggestions
Ladle the soup into wide bowls and add a swirl of olive oil with extra chives for a simple finish. Crusty bread on the side soaks up the last of the base without falling apart.
For a fuller table, pair it with potato gnocchi as a separate course or a lentil soup starter if you're feeding a crowd. A sharp green salad cuts the richness well.
Storage and Reheating
Cool the pot to room temperature within 2 hours, then refrigerate in an airtight container for up to 4 days. The base thickens cold, which is normal for a starch-heavy soup.
Reheat on medium-low heat and stir often until steaming at 165°F in the center if you added any meat topping. Freeze flat in bags for up to 3 months and thaw overnight before warming.
Yes, this creamy potato soup recipe freezes well for up to 3 months when reheated gently off a boil. That makes it a strong risotto alternative for batch nights.
Recipe Variations
Bacon Version
Crisp 4 strips of bacon first, spoon out, then start the roux in the rendered fat instead of butter. Crumble the bacon on top for a smoky, salty contrast against the smooth potato base.
Cheesy Broccoli
Add 2 cups small broccoli florets with the potatoes so they soften in the same 15–18 minutes. The florets break down slightly and add a green, mineral note to the mild cheese finish.
Leek Swap
Replace the onion with 2 sliced leeks washed of grit and sweated the same 5 minutes. The alfredo recipe uses leeks similarly if you want a flavor map. Expect a sweeter, more delicate aromatic layer.
Spiced Curry
Stir 1 tsp curry powder into the flour stage so it toasts with the roux and loses raw edge. The soup takes a warm, golden tone and pairs with plain rice on the side.