Thick, creamy potato soup has a way of tasting like it took all afternoon, even when it comes together in under an hour. The potatoes soften just enough to break down around the edges, the broth turns silky with a quick flour base, and the bacon adds the kind of salty depth that keeps each spoonful interesting. A bowl like this lands somewhere between hearty and comforting without feeling heavy.
The trick is building the soup in layers. Bacon drippings give the onion a head start, then butter and flour thicken the broth before the potatoes go in, so the final texture stays smooth instead of watery. Mashing only part of the pot matters too. That leaves you with a creamy base and enough potato pieces for a spoonful that still has some bite.
Below, I’ve included the exact stage where most potato soups go grainy or gluey, plus the swaps that still give you a rich bowl if you need to change up the dairy or skip the bacon.
The potatoes got tender right on time and mashing just half of them gave the soup the best texture — creamy but still chunky. My husband said it tasted like the kind of soup you get at a good diner.
Save this creamy potato soup for the night you want a thick, bacon-topped bowl with tender potatoes and melted cheddar.
The Drippings, Roux, and Mash That Keep Potato Soup from Turning Watery
Potato soup gets disappointing fast when the broth tastes thin and the potatoes either dissolve into paste or stay stubbornly firm. The fix is to build a small roux before the broth goes in, then simmer the potatoes until they’re just tender enough to mash partway. That gives the soup body from the start instead of trying to thicken it after everything is already in the pot.
The other mistake is overworking the potatoes. If you puree the whole batch, the starch can turn the soup gluey. Mashing about a third to half of the potatoes gives you a creamy base with enough texture left for each bite to still feel like potato soup, not blended gravy.
- Russet potatoes — These break down beautifully and help thicken the soup naturally. Yukon Golds will hold their shape a little more and give you a silkier, less starchy result, which works if you want softer pieces in the bowl.
- Bacon drippings — They carry the savory base of the soup and season the onion from the start. If you skip the bacon, use butter and a pinch of smoked paprika so the soup doesn’t taste flat.
- Butter and flour — This is what gives the broth enough backbone to feel creamy instead of brothy. Cook the flour for a minute or two so the soup doesn’t taste raw, but don’t let it brown or you’ll push the flavor toward gravy.
- Heavy cream and whole milk — The milk keeps the soup from becoming too rich, while the cream gives it that plush finish. Half-and-half works in a pinch, but the soup will be a little lighter and less velvety.
- Cheddar — Sharp cheddar melts into the soup and adds a little tang that balances the potatoes. Grate it yourself if you can; pre-shredded cheese sometimes stays a little grainy because of the anti-caking coating.
What Each Ingredient Is Actually Doing in This Recipe

- Primary ingredient (the star) — Quality matters most. Choose the best you can find.
- Cooking medium (oil, butter, or broth) — This carries flavors and prevents dryness.
- Seasonings (salt, pepper, spices, herbs) — Layer flavors so nothing overpowers. Build depth gradually.
- Aromatics (garlic, onion, herbs) — Cook with fat to bloom flavors. Become the foundation.
- Supporting ingredients — Complement the main ingredient without overpowering it.
- Sauce or liquid (if applicable) — Brings flavors together. Balance richness with acid.
- Acid (lemon, vinegar, wine, or other) — Brightens and prevents flat-tasting results.
- Final finish (garnish, glaze, or sauce) — Prevents one-dimensional taste and adds visual appeal.
Building the Soup Base Without Burning the Garlic or Breaking the Dairy
Render the bacon and keep the drippings
Cook the diced bacon until it’s crisp and the fat has rendered into the pan. Lift the bacon out, but leave the drippings behind because that’s where the onion starts tasting like soup instead of just vegetables. If the heat runs too high here, the drippings can scorch and make the whole pot taste bitter, so keep the burner at medium and stir often.
Soften the onion before the flour goes in
Add the onion to the drippings and cook until it turns translucent and sweet at the edges. Stir in the garlic only for the last minute; garlic burns fast and turns sharp if it sits in the pan too long. Once the butter and flour go in, the mixture should smell nutty and look like a loose paste coating the onion.
Simmer the potatoes until they give easily
Pour in the broth and add the potatoes, then bring everything up to a boil before lowering the heat to a steady simmer. You want the potatoes tender enough that a fork slips in without resistance, but not so soft that they fall apart completely before you mash them. If the pot boils hard, the potatoes can break down unevenly and the soup can turn murky instead of creamy.
Finish with dairy and mash to the texture you want
Stir in the milk and cream once the potatoes are tender, then mash some of the potatoes right in the pot. The soup should look thickened and a little rustic, with a few chunks still floating through the base. Add the cheddar off a lower heat so it melts smoothly; if the soup is too hot, cheese can turn grainy instead of silky.
How to Adapt This Potato Soup for Different Nights
Dairy-Free Potato Soup
Swap the butter for olive oil or a plant-based butter, use unsweetened oat milk or cashew milk, and leave out the cheddar or replace it with a dairy-free melting cheese. The soup will still be creamy from the potatoes, but it won’t have quite the same rich finish or tang from the cheddar.
Vegetarian Version
Skip the bacon and cook the onion in butter instead, then use vegetable broth in place of chicken broth. A small pinch of smoked paprika helps replace the savory depth you lose from the bacon drippings without making the soup taste smoky in an obvious way.
Extra-Thick Potato Soup
Use an extra potato or simmer the soup a few minutes longer before adding the dairy. You can also mash more of the potatoes if you want a denser bowl that eats almost like chowder, but stop short of pureeing or the texture gets pasty.
Storage and Reheating
- Refrigerator: Store in an airtight container for up to 4 days. The soup thickens as it chills because the potatoes keep absorbing liquid.
- Freezer: It freezes, but the dairy can separate a little after thawing, so the texture won’t be quite as smooth. Freeze in smaller portions and stir well after reheating.
- Reheating: Warm it slowly on the stove over low heat, adding a splash of broth or milk if needed. High heat is the fastest way to make the dairy break or the potatoes turn gummy.
Answers to the Questions Worth Asking

Classic Creamy Potato Soup
Ingredients
Equipment
Method
- Cook the diced bacon in a large pot over medium heat until crispy, then remove and set aside, leaving the drippings in the pot.
- Sauté the diced onion in the bacon drippings for 4 minutes, then add the minced garlic and cook for 1 minute.
- Add the butter and all-purpose flour and cook for 1-2 minutes, stirring constantly to form a smooth thick paste.
- Pour in the chicken broth and add the diced potatoes, bring to a boil, then reduce heat and simmer for 15-20 minutes until the potatoes are tender.
- Stir in the whole milk and heavy cream, then mash some of the potatoes with a masher for a creamy texture.
- Stir in the shredded cheddar until melted, then season with salt and black pepper.
- Serve the soup topped with the crispy bacon, sour cream, and chives.



