Thick, creamy potato soup with tender bites of potato, smoky bacon, and melted cheddar is the kind of bowl that disappears fast. It’s comforting without being heavy in a greasy way, and the texture lands right where you want it: velvety broth, softened potatoes, and just enough body to cling to a spoon. The bacon and cheddar do more than add flavor here; they give the soup the salty backbone it needs so the potatoes don’t taste flat.
This version works because it builds flavor in layers instead of trying to fix everything at the end. Browning the bacon first gives you drippings for the onion, and that base carries all the way through the soup. A quick flour-butter roux helps the milk and broth thicken without turning gluey, and mashing only part of the potatoes keeps the soup creamy while still leaving a few chunks for texture.
Below, I’ve included the small decisions that matter most — when to mash, when to add the dairy, and how to keep the cheddar smooth instead of grainy. Those are the details that turn a good potato soup into the kind you’ll want to make again.
The potatoes got soft in exactly 20 minutes, and mashing just part of them gave the soup that thick, hearty texture without turning it into paste. My husband went back for a second bowl before I even sat down.
Save this creamy potato soup for the nights when you want a thick, bacon-topped bowl with real potato texture.
The Reason This Potato Soup Stays Thick Without Turning Gluey
Potato soup can go wrong in two common ways: it turns thin and watery, or it turns pasty from too much starch. The trick here is using a light roux before the broth goes in, then mashing only some of the potatoes after they’re tender. That gives you body from the potatoes themselves without relying on a heavy flour load.
Russets are the right choice because they break down in a way that naturally thickens the pot. If you use waxy potatoes, the soup will stay a little looser and the texture won’t blend as smoothly. The bacon drippings matter too; they carry the onion and garlic and give the whole pot a savory depth that plain butter can’t match.
What Each Ingredient Is Actually Doing in This Bowl

- Russet potatoes — These break down enough to thicken the soup while still leaving soft pieces behind. Dice them evenly so they all finish cooking at the same time.
- Bacon — This adds smoky flavor and gives you drippings for the onion. Thick-cut bacon works too, but regular strips crisp faster and render nicely.
- Butter and flour — This is the roux that keeps the broth from feeling thin. Cook it for a minute or two so the raw flour taste disappears, but don’t let it brown deeply or you’ll change the color and flavor of the soup.
- Whole milk and heavy cream — Whole milk keeps the soup from feeling too rich, while the cream gives it that restaurant-style finish. You can swap in half-and-half for both if that’s what you have, but the soup will be a little less luscious.
- Cheddar — Add it off the heat or over very low heat so it melts smoothly. High heat can make cheese turn grainy.
The 20 Minutes That Actually Matter
Rendering the Bacon First
Cook the diced bacon over medium heat until it’s crisp and the fat has rendered into the pan. Pull the bacon out before it burns; it should look deep golden, not dark brown. Those drippings are the base of the soup, so don’t wipe the pot clean.
Building the Flavor Base
Sauté the onion in the bacon drippings until it softens and turns translucent, then add the garlic for just one minute. Garlic burns quickly, and once it does, the whole pot tastes bitter. Stir in the butter and flour next and keep it moving until the mixture looks smooth and slightly bubbly.
Simmering the Potatoes
Pour in the broth, add the potatoes, and bring the pot to a boil before lowering it to a steady simmer. You want the potatoes tender enough to break cleanly with a fork, not falling apart into tiny pieces. If the boil is too hard, the potatoes can shred on the outside before the centers are cooked.
Finishing with Dairy and Cheese
Stir in the milk and cream once the potatoes are tender, then mash part of the soup right in the pot. This is where the texture comes together. Add the cheddar gradually over low heat until melted, then season with salt and pepper. If the soup starts looking grainy, the heat was too high for the cheese; pull it off the burner and stir until it smooths out.
Three Ways to Make This Potato Soup Work for Your Kitchen
Make it gluten-free
Swap the all-purpose flour for a gluten-free flour blend that’s meant for thickening, or use cornstarch slurry at the end if you prefer. The soup will still thicken well, but the body will be a little more glossy than roux-based soup.
Make it lighter without losing the creamy texture
Use half-and-half instead of the milk and cream combo, then mash a few extra potatoes to keep the soup thick. You’ll lose some richness, but the texture stays satisfying and the soup still feels substantial.
Skip the bacon and make it vegetarian
Use butter or olive oil instead of bacon drippings and swap in vegetable broth. You’ll lose the smoky depth, so add a pinch of smoked paprika or a little extra cheddar to bring back some of that savory edge.
Storage and Reheating
- Refrigerator: Store for up to 4 days. It will thicken as it chills, so expect to loosen it with a splash of broth or milk.
- Freezer: It freezes, but the dairy can separate a bit when thawed. For the best texture, freeze before adding the milk, cream, and cheddar, then finish those ingredients after reheating.
- Reheating: Warm it slowly over low heat and stir often. Don’t boil it hard or the dairy can split and the potatoes can turn mealy.
Answers to the Questions Worth Asking

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