Thick potato soup should taste like it came from a diner counter in the best way: creamy, savory, and packed with tender potato pieces that still give a little bite. The bacon brings smoke and salt, the cheddar melts into the broth without taking over, and mashing only part of the potatoes gives you body without turning the whole pot into glue. That mix of textures is what keeps this version from feeling flat or overly heavy.
The trick is building the base before the liquid goes in. Bacon drippings, butter, and flour make a quick roux that keeps the soup from separating, and adding the dairy after the potatoes are tender keeps the milk and cream smooth. If you rush the heat once the cheese goes in, the soup can turn grainy, so this version stays calm at the end and lets the cheese melt gently.
Below, I’ll show you the small moves that matter most: how much to mash, when to add the dairy, and how to keep the soup thick without losing that clean potato flavor.
The soup got thick and creamy without turning pasty, and the cheddar melted right in after I mashed half the potatoes. My husband kept going back for a second bowl.
Save this creamy bacon potato soup for the nights when you want a thick, cozy bowl with cheddar, chives, and barely any cleanup.
The Roux Is What Keeps This Potato Soup From Turning Thin
Potato soup gets watery fast when the broth and dairy are added without a thickening base. The flour and butter cook together first, then the broth goes in slowly so the starch has time to swell instead of clumping. That gives you a soup that coats a spoon instead of sliding off it.
The other mistake is boiling the soup hard after the dairy goes in. Once milk and cream are in the pot, the heat should stay low enough that the surface barely trembles. If it boils at that stage, the texture can turn grainy and the fat can separate.
- Bacon drippings — They carry the first layer of flavor and replace some of the butter, which is why this soup tastes like more than just potatoes and cream. If your bacon is lean, you can top off the pot with a spoonful of butter.
- Russet potatoes — These break down in a way that helps thicken the soup naturally. Waxy potatoes stay too firm and won’t give you the same creamy body.
- Flour and butter — This is the thickening backbone. Cook it long enough to lose the raw flour smell, but not so long that it browns too deeply unless you want a toastier note.
- Cheddar — Use a sharper cheddar if you want the flavor to stand up to the cream. Pre-shredded cheese works in a pinch, but freshly shredded melts smoother because it doesn’t have anti-caking starches.
Building the Soup in the Right Order

- Bacon first, always — Cook the diced bacon until crisp, then lift it out and keep the drippings in the pot. Those browned bits and rendered fat are part of the base, and they add a deeper savory note than plain oil ever could.
- Sweating the onion and garlic — Cook the onion until it turns soft and translucent before adding the garlic for just a minute. If the garlic browns, it turns bitter fast and that bitterness sticks out in an otherwise mellow soup.
- Making the roux — Stir the butter and flour together for 1 to 2 minutes until it looks paste-like and smells nutty rather than raw. This keeps the soup from tasting chalky and helps the broth thicken evenly.
- Mashing for texture — Once the potatoes are tender, mash only part of them. Leave enough chunks behind so the soup still has actual potato texture instead of becoming baby-food smooth.
The Potatoes Need Just Enough Time to Break Down
Cooking the Bacon and Onion Base
Start with the bacon in a large pot over medium heat and cook it until the pieces are crisp and the fat has rendered. Pull the bacon out before it burns, then use the drippings to soften the onion. The onion should look glossy and tender, not browned; if it takes on color too fast, the heat is too high and the soup base will taste sharper than it should.
Thickening Before the Broth Goes In
Add the butter and flour to the pot and stir constantly for 1 to 2 minutes. You’re looking for a smooth paste with no dry flour left on the bottom. This stage matters because flour that isn’t cooked long enough gives the soup a raw taste, but flour that’s burned makes the whole pot taste dull and bitter.
Simmering the Potatoes
Pour in the broth, add the diced potatoes, and bring the pot just to a boil before lowering it to a steady simmer. The potatoes are ready when a fork slides through them without resistance and the edges start to look slightly soft. If the boil is too aggressive, the potatoes can break apart before they’ve cooked evenly, which makes the texture uneven instead of creamy.
Finishing with Dairy and Cheese
Stir in the milk and cream after the potatoes are tender, then mash some of the potatoes against the side of the pot. Add the cheddar with the heat low enough that the soup barely bubbles. If the cheese goes in over high heat, it can seize and feel gritty, so keep the flame gentle and stir until the soup looks smooth and glossy.
How to Tweak This Potato Soup Without Losing the Creamy Texture
Make it without bacon
Skip the bacon and start the onion in butter instead. You’ll lose the smoky edge, so add a pinch of smoked paprika or a little extra black pepper if you want the soup to still taste layered.
Make it gluten-free
Use a 1:1 gluten-free flour blend in place of the all-purpose flour. The texture stays close to the original as long as you cook the roux long enough to lose the raw flour taste before adding the broth.
Make it lighter
Swap the heavy cream for more whole milk if you want a thinner, less rich soup. It won’t coat the spoon the same way, but the potato flavor comes forward more clearly and the bowl still feels satisfying.
Storage and Reheating
- Refrigerator: Store in an airtight container for up to 4 days. The soup thickens as it sits, so expect it to look a little denser after chilling.
- Freezer: It freezes, but the dairy can separate slightly when thawed. For the best texture, freeze before adding the milk, cream, and cheese, then finish those ingredients when reheating.
- Reheating: Warm it gently on the stove over low heat, stirring often. Don’t boil it, or the dairy can split and the potatoes can turn mealy.
Questions I Get Asked About This Potato Soup

Classic Creamy Potato Soup
Ingredients
Equipment
Method
- Cook diced bacon in a large pot over medium heat until crispy, about 8 to 12 minutes, then remove and set aside while leaving the drippings. Look for browned bacon bits and active sizzling in the drippings.
- Sauté the diced onion in the bacon drippings for 4 minutes. Stir and cook until softened and glossy.
- Add the minced garlic and cook for 1 minute. Stir until fragrant, without browning.
- Add the butter and all-purpose flour and cook for 1 to 2 minutes, stirring constantly. It should smell toasted and look slightly thickened.
- Pour in the chicken broth and add the diced russet potatoes, then bring to a boil and reduce heat. You should see steady bubbles before reducing to a gentle simmer.
- Simmer for 15 to 20 minutes until the potatoes are tender. A knife should slide in easily with little resistance.
- Stir in the whole milk and heavy cream. Watch for the soup to turn creamy and steam gently.
- Use a masher to mash some of the potatoes to create a creamy texture. Stop when you see partial chunks and a thicker body.
- Stir in the shredded cheddar until melted, then season with salt and black pepper. The soup should look smooth and glossy with no cheese streaks.
- Ladle the soup into bowls and top with the reserved bacon, sour cream, and chives. The final look should be golden and creamy with visible bacon bits and green flecks.


