Velvety potato soup with tender bites of potato, smoky bacon, and a sharp cheddar finish earns its place in the regular dinner rotation fast. The texture lands in that sweet spot between chunky and creamy, with enough body to feel comforting but not heavy. A spoonful of sour cream and a few chives on top give each bowl a bright finish that keeps the richness in check.
What makes this version work is the way the soup is built in layers. Bacon drippings start the base, which adds a quiet smoky depth before the onions and garlic go in. The flour cooks in butter long enough to lose its raw taste, then the broth goes in before the potatoes so the soup thickens as the potatoes soften. Mashing part of the pot at the end gives you that creamy body without turning everything into baby food.
Below, I’m sharing the one step that keeps the soup smooth instead of gluey, plus a few simple swaps for making it fit what you have on hand. If potato soup has ever turned out thin, grainy, or oddly flat, the details here will help.
The soup thickened up beautifully after I mashed just half the potatoes, and the cheddar melted in smooth instead of getting stringy. My husband went back for seconds before I’d even sat down.
Save this creamy potato soup for the nights when you want smoky bacon, tender potatoes, and a rich cheddar finish in one bowl.
The Part Most Potato Soups Get Wrong: Building Body Without Making Glue
The difference between a smooth, hearty potato soup and a bowl that tastes starchy and heavy usually comes down to heat and timing. If you add dairy too early or boil the finished soup hard, the texture gets loose at first and then muddy after it sits. This version stays balanced because the potatoes cook in the broth, the flour is cooked briefly in butter before the liquid goes in, and the milk and cream are added after the potatoes are tender.
Mashing some of the potatoes in the pot gives the soup its body without needing extra thickeners. That matters because potatoes already bring plenty of starch to the bowl. Let them do the work, and you get a soup that feels creamy and substantial instead of pasty.
What Each Ingredient Is Actually Doing in This Soup

- Russet potatoes — These are the best choice here because they break down a little as they cook, which helps thicken the soup naturally. Yukon golds work too if you want a silkier texture with slightly less starch, but they won’t give quite the same body.
- Bacon and drippings — The bacon gives the soup its smoky edge, and the drippings replace some of the fat you’d otherwise add separately. If you need a lighter version, skip the bacon and use butter instead, but you’ll lose that savory depth.
- Butter and flour — This quick roux is what keeps the soup from tasting thin. Cook it for a minute or two until it smells nutty, not raw, or the soup can taste floury.
- Whole milk and heavy cream — Milk gives the soup enough looseness to spoon easily, while cream adds a round finish. Lower-fat milk will work in a pinch, but the soup will taste less rich and won’t hold the same silky texture.
- Cheddar — Sharp cheddar stands up to the potatoes and bacon. Buy a block and shred it yourself if you can; pre-shredded cheese melts less smoothly because of the anti-caking coating.
Getting the Potatoes Tender and the Cheese to Melt Smoothly
Crisping the Bacon First
Start with the bacon in a cold pot or skillet and let it slowly render over medium heat until the pieces are crisp and the fat is clear. Pull the bacon out once it’s browned and crunchy, but leave the drippings behind. If the bacon burns before the fat renders, the whole soup picks up a bitter edge, so keep the heat steady rather than rushing it.
Cooking the Onion Base
Add the diced onion to the bacon fat and cook it until it turns soft and translucent, about 4 minutes. The garlic goes in for just a minute at the end so it doesn’t scorch. If the garlic goes in too early, it can turn harsh fast and that bitterness will carry through the soup.
Making the Roux and Adding the Broth
Stir the butter and flour together and cook them until the mixture looks pasty and smells lightly nutty. This is the step that gives the soup its backbone. Pour in the broth while stirring so the roux dissolves into a smooth base instead of clumping, then add the potatoes and bring everything to a gentle simmer.
Finishing With Cream and Cheese
Let the potatoes cook until a fork slides through easily, then lower the heat before adding the milk and cream. Mash some of the potatoes right in the pot, leaving plenty of chunks behind. Stir in the cheddar off the heat or over very low heat so it melts into the soup; high heat can make the cheese grainy or stringy.
How to Make This Soup Fit What’s in Your Kitchen
Make It Gluten-Free
Swap the all-purpose flour for a gluten-free 1:1 flour blend and cook it the same way in the butter. The soup will still thicken well, though the finish may be a touch less silky than the wheat-flour version.
Skip the Bacon
Use 3 tablespoons of butter instead of the bacon drippings and season a little more generously at the end. You’ll lose the smoky note, but the soup still lands rich and comforting if you add a pinch of smoked paprika.
Lighter Dairy Swap
You can use half-and-half instead of the milk and cream combo if that’s what you have, but the soup will be a little less lush. Keep the heat low when you add it, because leaner dairy breaks more easily if it boils.
Storage and Reheating
- Refrigerator: Store for up to 4 days. The soup thickens as it sits, so expect it to look a little denser the next day.
- 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 it fresh after reheating the base.
- Reheating: Warm it slowly over low heat on the stove, stirring often and adding a splash of broth or milk if needed. Don’t boil it hard, or the dairy can split and the potatoes can turn mealy.
Questions I Get Asked About This Recipe

Classic American Potato Soup
Ingredients
Equipment
Method
- Cook the diced bacon in a large pot over medium heat until crispy, then remove and set aside while leaving the drippings behind.
- 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, cooking for 1-2 minutes while stirring constantly.
- Pour in the chicken broth and add the diced potatoes, then bring to a boil and reduce heat to 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 to create a creamy texture.
- Stir in the shredded cheddar until melted, then season with salt and black pepper.
- Ladle the soup into bowls and top each serving with the cooked bacon, sour cream, and chives.


