Thick, creamy potato soup earns its place on the table when it lands with tender potato pieces, smoky bacon, and just enough cheddar to make the broth taste rich without turning heavy. The best bowls have a little texture left in them, not a perfectly smooth puree, so every spoonful gives you soft potato, silky soup, and crisp bacon in the same bite.
This version builds flavor in layers instead of relying on a long ingredient list. Bacon drippings carry the onion, flour thickens the broth before the dairy goes in, and only some of the potatoes get mashed so the soup stays hearty. That balance matters. If you puree all of it, you lose the rustic texture that makes potato soup satisfying in the first place.
Below, I’ll walk through the small choices that keep the soup creamy instead of gluey, plus the best way to adjust it if you want it a little thicker, a little lighter, or made ahead for later in the week.
The soup turned out thick and silky, and mashing just half the potatoes gave it the perfect texture. My husband kept going back for more, and the cheddar melted in without getting grainy.
Like this creamy potato soup? Save it to Pinterest for the nights when you want bacon, cheddar, and tender potatoes in one cozy bowl.
The Trick Is Keeping the Potatoes Broken, Not Pureed
Potato soup gets disappointing when it turns into paste. Russets help here because they break down enough to thicken the broth naturally, but they still leave a soft, fluffy texture if you only mash part of the pot. That gives you body without turning the soup gummy.
The other place people run into trouble is the heat. Once the milk and cream go in, the soup needs gentle heat only. Hard boiling can make dairy taste flat and can also make the texture look split or grainy, especially once the cheddar gets added. Keep the simmer low and steady, and stir often so nothing catches on the bottom.
If your soup seems thinner than you want, let it simmer a few extra minutes before adding the cheese. The flour and potato starch need time to do their work. If it looks too thick, a splash of broth loosens it without watering down the flavor.
What Each Ingredient Is Actually Doing in the Bowl

- Russet potatoes — These are the backbone of the soup because they break down and thicken the broth as they cook. Yukon Golds work too, but the soup will stay a little silkier and less fluffy.
- Bacon and drippings — The bacon adds smoke and salt, but the drippings are what carry the onion and garlic into the soup with real depth. If you use turkey bacon, add a little extra butter because you’ll lose some of that savory base.
- Butter and flour — This quick roux keeps the soup from tasting thin and watery. Cook it for a minute or two until it smells nutty; if you rush this part, the soup can taste like raw flour later.
- Whole milk and heavy cream — Whole milk gives the soup enough lightness to keep it from feeling dense, while cream makes it taste rounded and rich. Lower-fat dairy will work in a pinch, but the soup won’t finish as silky.
- Cheddar — Add it off the strongest heat so it melts smoothly. Pre-shredded cheese works, but block cheese melts better because it doesn’t carry the anti-caking starch that can make the soup grainy.
Building the Soup Without Curdling the Dairy
Crisping the Bacon First
Cook the diced bacon over medium heat until the pieces are browned and the fat has rendered. You want crisp edges, not burnt bits, because the bacon keeps cooking a little after you pull it out. Leave about two to three tablespoons of drippings in the pot; that’s enough to flavor the onions without making the soup greasy.
Cooking the Onion and Garlic in the Fat
Add the diced onion to the drippings and cook until it turns soft and translucent, about four minutes. The pot should smell sweet and savory, not sharp. Add the garlic only for the last minute so it doesn’t scorch; burned garlic will make the whole pot taste bitter.
Making the Roux and Thickening the Broth
Stir in the butter and flour and cook until the mixture looks pasty and slightly foamy. Keep stirring so it doesn’t color too fast on the bottom. When you add the broth, pour slowly while whisking or stirring constantly so the flour dissolves cleanly instead of forming little lumps.
Simmering the Potatoes Until They Yield
Add the diced potatoes and bring the pot up to a boil, then drop it down to a steady simmer. The potatoes are ready when a fork slides through without resistance and the edges start to soften. If you cook them too long before the dairy goes in, they’ll collapse completely and make the soup heavier than you want.
Finishing with Milk, Cream, and Cheese
Stir in the milk and cream, then mash some of the potatoes right in the pot with a potato masher. Leave plenty of chunks behind for texture. Pull the pot back to low heat before adding the cheddar, and stir until it melts completely. If the soup looks grainy here, the heat is too high; take it off the burner for a minute and keep stirring until it smooths out.
Three Ways to Make This Potato Soup Fit Your Table
Make It Without Bacon
Skip the bacon and start the onion in butter instead. The soup will be a little less smoky, so add a pinch of smoked paprika if you want that savory edge back. It won’t taste exactly the same, but it will still be rich and satisfying.
Gluten-Free Version
Swap the all-purpose flour for a gluten-free 1:1 blend or thicken with a cornstarch slurry near the end. The flour version gives the broth a slightly more classic, velvety body, but the cornstarch method works well if you add it slowly and let it simmer for a minute to activate.
Lighter But Still Creamy
Use half-and-half instead of the milk and cream combination, or swap in more milk and skip a little of the cheddar. The soup will be a touch less rich and a little thinner, but the mashed potatoes still give it enough body that it doesn’t feel like broth with add-ins.
Storage and Reheating
- Refrigerator: Store in an airtight container for up to 4 days. It thickens as it chills, so expect a denser texture the next day.
- Freezer: This soup can be frozen, but dairy-based potato soups sometimes separate a little after thawing. Freeze in portions and reheat gently; it works best if you stir well as it warms.
- Reheating: Warm it over low heat on the stove, adding a splash of broth or milk to loosen it. Don’t boil it again or the dairy can split and the potatoes can turn mealy.
Questions I Get Asked About This Recipe

Classic Creamy Potato Soup
Ingredients
Equipment
Method
- Cook the diced bacon in a large pot over medium heat until crispy, about 6-10 minutes, then remove and set aside while leaving the drippings in the pot.
- Sauté the diced onion in the bacon drippings for 4 minutes, stirring occasionally until softened.
- Add the minced garlic and cook for 1 minute, stirring constantly so it becomes fragrant but does not brown.
- Melt the butter, then add the all-purpose flour and cook for 1-2 minutes while stirring constantly to remove the raw flour taste.
- Pour in the chicken broth and add the diced russet potatoes, then bring to a boil.
- Reduce the heat and simmer for 15-20 minutes until the potatoes are tender when pierced with a fork.
- Stir in the whole milk and heavy cream, then use a masher to mash some of the potatoes to thicken the soup to a creamy texture.
- Stir in the shredded cheddar until melted, then season with salt and black pepper.
- Serve the soup topped with the reserved bacon, plus sour cream and chives.