You know that feeling when you take one bite of something and immediately think, why haven’t I been making this every single week?
That’s what this potato soup does.
It’s creamy, thick, deeply savory, and so filling that a single bowl basically doubles as dinner. And the surprising part? You probably already have everything you need to make it right now.
This isn’t a fancy soup. No cream of this, no condensed that. Just real, honest ingredients that come together in under an hour into something that tastes like it simmered all day.
What You’ll Need

For the Soup:
- 2 lbs (about 900g) Yukon Gold potatoes, peeled and diced into 1-inch cubes
- 4 strips thick-cut bacon, chopped
- 1 medium yellow onion, diced
- 3 cloves garlic, minced
- 3 cups (720ml) chicken broth (low sodium)
- 1 cup (240ml) whole milk
- 1 cup (240ml) heavy cream
- 3 tablespoons unsalted butter
- 3 tablespoons all-purpose flour
- 1 teaspoon salt (plus more to taste)
- ½ teaspoon black pepper
- ½ teaspoon smoked paprika
- ¼ teaspoon onion powder
For the Toppings (the good stuff):
- 1 cup shredded sharp cheddar cheese
- ¼ cup sour cream
- 3 green onions (scallions), thinly sliced
- Extra crispy bacon bits
- Fresh chives (optional)
Tools You’ll Need
- Large heavy-bottomed pot or Dutch oven (at least 5-quart)
- Cutting board and sharp knife
- Potato peeler
- Wooden spoon or silicone spatula
- Ladle
- Immersion blender (or regular blender — more on this below)
- Measuring cups and spoons
- Large bowl (if using a regular blender)
Pro Tips
These are the things that make the difference between a good potato soup and one your family requests every single week.
1. Yukon Golds are non-negotiable (kind of). Russets get too starchy and gluey when blended. Yukon Golds have a naturally buttery, creamy texture that makes the final soup silky without being gummy. If you only have russets, use them — just don’t over-blend.
2. Don’t skip the flour step. That roux (butter + flour) is what makes the soup thick and velvety instead of watery. Let it cook for a full minute before adding the liquids so you don’t get a raw flour taste.
3. Blend only half. This is the trick most people skip. Blending just half the soup gives you that creamy, thick base while keeping real potato chunks throughout. Full-blend = baby food. Half-blend = restaurant-quality.
4. Bacon fat is flavor. Don’t drain all of it. Leaving about 1-2 tablespoons in the pot after cooking the bacon is what gives the onions and garlic that deep, smoky flavor base. This one step changes everything.
5. Add the dairy last and over low heat. Boiling milk or cream causes it to break and curdle. Once you add the cream and milk, keep the heat low and stir gently. No boiling from this point on.
Substitutions and Variations
Dairy-free: Swap butter for olive oil or vegan butter, use unsweetened oat milk in place of whole milk, and full-fat coconut milk instead of heavy cream. Skip the cheddar or use a vegan alternative.
Vegetarian: Swap the bacon for 1 tablespoon of olive oil plus ½ teaspoon smoked paprika (mimics that smoky depth). Use vegetable broth instead of chicken broth.
Extra loaded: Stir in 1 cup of frozen corn kernels and top with jalapeño slices for a loaded baked potato vibe that feels almost indulgent.
Lighter version: Use 2% milk instead of heavy cream and skip the bacon. Still delicious, just lighter.
Spicy version: Add ¼ teaspoon cayenne pepper and top with pickled jalapeños. The heat against the creamy soup is genuinely kind of addictive.
Make Ahead Tips
This soup is a meal prep dream.
You can make the full batch up to 3 days ahead and store it in the fridge. It actually tastes better the next day once everything has had time to sit together.
If you’re making it ahead, wait to add the toppings until you’re ready to serve. Store them separately.
You can also prep the bacon, dice the potatoes (keep them submerged in cold water in the fridge for up to 24 hours so they don’t brown), and chop the onion the night before. Morning-of assembly takes about 20 minutes.
Nutritional Info (Per Serving, Approximate)
Based on 6 servings, with toppings.
| Nutrient | Amount |
|---|---|
| Calories | ~420 kcal |
| Protein | 14g |
| Carbohydrates | 32g |
| Fat | 27g |
| Fiber | 3g |
| Sodium | 680mg |
Want to cut calories? Skip the heavy cream and use milk only. Saves roughly 80–100 calories per serving.
Meal Pairing Suggestions
Potato soup is a complete meal in a bowl, but if you want to round it out:
- Crusty sourdough bread for dunking (non-negotiable in my house)
- A simple green salad with a light vinaigrette to cut through the richness
- Grilled cheese sandwich if you’re going full comfort mode
- Roasted broccoli on the side keeps it balanced and adds a nice contrast
How to Make It

Step 1: Cook the bacon. In your large pot over medium heat, cook the chopped bacon until crispy, about 6–8 minutes. Remove with a slotted spoon and set aside on a paper towel-lined plate. Leave 1–2 tablespoons of bacon fat in the pot. Discard the rest.
Step 2: Sauté the onion and garlic. Add the diced onion to the pot and cook in the bacon fat over medium heat for 4–5 minutes, until softened and translucent. Add the minced garlic and cook for another 60 seconds, stirring constantly so it doesn’t burn.
Step 3: Make the roux. Add the butter to the pot and let it melt. Sprinkle in the flour and stir vigorously for 1 full minute. It will look thick and paste-like — that’s exactly right.
Step 4: Add the broth. Slowly pour in the chicken broth while stirring constantly to prevent lumps. Scrape up any browned bits from the bottom of the pot — that’s flavor.
Step 5: Add the potatoes and spices. Add the diced potatoes, salt, pepper, smoked paprika, and onion powder. Stir to combine. Bring to a boil, then reduce heat to medium-low and simmer for 15–20 minutes, until the potatoes are completely fork-tender.
Step 6: Blend half the soup. This is the step that makes it. Use an immersion blender to blend about half the soup directly in the pot. If you’re using a regular blender, ladle half the soup into the blender, blend until smooth, then pour it back in. Stir to combine.
Step 7: Add the dairy. Reduce heat to low. Stir in the whole milk and heavy cream. Let it warm through for 3–4 minutes, stirring gently. Do not let it boil.
Step 8: Taste and adjust. This is the most important step that people skip. Taste it. Does it need more salt? More pepper? A little more paprika? Adjust now before you serve it.
Step 9: Serve and top. Ladle into bowls and top with shredded cheddar, a dollop of sour cream, crispy bacon bits, and sliced green onions.
Serve immediately.
Leftovers and Storage
In the fridge: Store in an airtight container for up to 4 days. The soup will thicken as it cools — just add a splash of broth or milk when reheating and stir over low heat until warmed through.
In the freezer: Potato soup can be frozen, but dairy-based soups sometimes separate slightly when thawed. If you plan to freeze it, leave out the cream before freezing and add it fresh when you reheat. Freeze for up to 2 months.
Reheating: Always reheat on the stovetop over low heat, not the microwave if you can avoid it. The microwave tends to make the texture uneven and can cause the dairy to separate.
FAQ
Can I use a different type of potato? Yes. Russets work but produce a denser, starchier result. Red potatoes hold their shape better and give you a chunkier soup. Yukon Golds are the sweet spot for creamy without gluey.
Do I have to use heavy cream? No. You can use all whole milk or swap heavy cream for half-and-half. The soup will be a little less rich, but still really good.
My soup is too thin. How do I fix it? Blend more of the soup (the potatoes act as a natural thickener), or mix 1 tablespoon of cornstarch with 2 tablespoons of cold water and stir it into the simmering soup. Let it cook for 2 minutes and it’ll thicken right up.
My soup is too thick. How do I fix it? Add warm chicken broth a little at a time, stirring between each addition, until you hit the consistency you want.
Can I make this in a slow cooker? Yes. Cook the bacon and sauté the onion and garlic on the stovetop first (don’t skip this step — it builds flavor). Then add everything except the dairy to the slow cooker and cook on low for 6–8 hours or high for 3–4 hours. Blend half, then stir in the cream and milk on low for the last 30 minutes.
Can I make it without bacon? Totally. Use 1 tablespoon of olive oil to sauté the onion and garlic, and add ½ teaspoon of smoked paprika for depth. It’s still a really satisfying soup.
Is this gluten-free? Not as written, because of the flour. To make it gluten-free, swap the all-purpose flour for a 1:1 gluten-free flour blend or use 1 tablespoon of cornstarch instead.
Wrapping Up
If there’s one soup recipe to have saved somewhere you’ll actually find it again, this is the one.
It’s the kind of meal that costs almost nothing to make, comes together in under an hour, and genuinely makes people happy. And not in a polite “oh, this is nice” way — in a “can I have more?” way.
Make it on a Sunday and you’ll have lunch covered for half the week. Make it for guests and watch them ask for the recipe before they’ve even finished their bowl.
Give it a go this week and drop a comment below. Tell me how it turned out, what toppings you used, or any tweaks you made. I read every single one and love seeing what you come up with.