There’s something deeply satisfying about a pot of potato soup simmering on the stove — the kind that fills the kitchen with a warm, savory aroma and has everyone drifting in before it’s even done. This recipe is the real deal: thick, creamy, and loaded with tender potatoes, crispy bacon bits, and just the right balance of herbs and spice.

Whether you’re chasing off a cold evening chill or simply craving pure comfort in a bowl, this soup delivers every single time. It’s not fussy, it’s not fancy — it’s just incredibly good.
Table of Contents
Why We Love This Perfect Potato Soup
- Weeknight-friendly simplicity — Built from everyday pantry staples, this soup comes together with minimal fuss. No specialty ingredients, no complicated techniques — just straightforward steps anyone can follow.
- Bacon makes everything better — Crispy bacon crumbles stirred right into the soup (and scattered on top) add a smoky, salty bite that cuts through the richness in the most satisfying way.
- Luxuriously creamy texture — Thanks to a roux base and generous half-and-half, every spoonful is silky and full-bodied — not watery, not gluey, just perfectly thick.
- Layered, complex flavor — Thyme, cayenne, and a whisper of nutmeg give this soup a quiet depth you don’t expect. It tastes like it’s been cooking all day, even when it hasn’t.
- Even better the next day — As the soup sits, the flavors deepen and meld. Leftovers rarely make it past day two in most households.
- Hidden veggies your family won’t notice — Celery, onion, and baby carrots melt quietly into the base, adding sweetness and nutrition without anyone picking them out.
Ingredients Notes
- Russet potatoes: Russets are ideal here — their high starch content breaks down beautifully, giving the soup body and creaminess. Cut them uniformly so they cook at the same rate.
- Bacon: Thick-cut bacon works wonderfully and holds up better during the final simmer. Cook it until genuinely crispy — chewy bacon won’t deliver that satisfying textural contrast.
- Butter: Unsalted is preferred so you can control the overall salt level. The butter also serves as the fat base for the roux — don’t skip it or substitute with oil.
- Celery: Adds a mild, herby backbone to the flavor base. Slice thinly so it softens fully and blends into the broth rather than standing out texturally.
- Onion: Yellow or white onion both work well. Dicing small ensures it cooks evenly and dissolves into the soup, building sweetness into the base without a sharp bite.
- Baby carrots: Carrots bring a touch of natural sweetness and a pop of color. Baby carrots are convenient, but regular carrots sliced thin work just as well — don’t skip them.
- Kosher salt: Adding salt in two stages — once while cooking the vegetables and again with the liquids — builds flavor from the ground up rather than just seasoning at the end.
- Freshly ground black pepper: Freshly ground makes a real difference here. Like the salt, using it in stages means the pepper integrates into the soup rather than sitting on top.
- All-purpose flour: This is what creates the roux that thickens the soup. Cook it with the butter for at least two minutes to get rid of the raw flour taste before adding liquids.
- Chicken broth: Adds savory depth and helps thin the soup to just the right consistency. Low-sodium broth gives you more control over saltiness — you can always add more, never less.
- Dried thyme: A classic pairing with potato and bacon. Even a small amount of thyme gives the soup an earthy, herbaceous lift that makes it taste more nuanced and complete.
- Cayenne pepper: Just a small amount adds gentle warmth in the background — you won’t taste heat, but you’ll notice if it’s missing. It balances the richness of the cream.
- Ground nutmeg: A classic addition to cream-based soups. It’s barely perceptible on its own but rounds out all the other flavors in a subtle, almost mysterious way.
- Green onions: Used as a fresh garnish, green onions bring a mild onion flavor and a burst of color right before serving. Slice them just before adding so they stay crisp and bright.
- Paprika: Sprinkled on top as a finishing touch, paprika adds a gentle smoky-sweet note and a beautiful russet-red color that makes each bowl look as good as it tastes.
Step-By-Step Directions
Step 1: Add the potatoes to a large pot and cover them with water. Bring to a boil and cook until tender when pierced with a fork, about 10 minutes. Drain well.

Step 2: Cook the bacon in a large saucepan over medium-high heat, turning occasionally, until crisp, about 8 minutes. Transfer to paper towels to drain and discard the excess bacon grease.

Step 3: Melt the butter in the same saucepan over medium heat, scraping up any browned bits from the bottom. Stir in the celery, onion, carrots, 1 teaspoon salt, and 1/2 teaspoon pepper. Cook until the vegetables are softened, about 10 minutes. Sprinkle in the flour and cook, stirring constantly, for 2 minutes.

Step 4: Pour in the half-and-half and chicken broth. Add the potatoes, remaining 1 teaspoon salt, remaining 1/2 teaspoon pepper, thyme, cayenne pepper, and nutmeg. Bring the mixture to a boil, stirring frequently. Stir in the bacon and reduce the heat to a simmer. Cook, stirring occasionally, for about 10 minutes to blend the flavors.

Step 5: Serve the soup in bowls and garnish with the remaining pepper, green onions, and a sprinkle of paprika.

Tips for the Best Results
Cut everything uniformly — Evenly sized potato cubes cook at the same rate, so you don’t end up with mushy pieces next to firm ones. A half-inch cube is the sweet spot for this soup.Don’t rush the roux — Give the flour a full two minutes in the butter before adding any liquid. Rushing this step leaves a starchy, raw-flour taste that no amount of seasoning can fix.
Warm your dairy before adding — Adding cold half-and-half to a hot pan can cause the soup to seize or turn grainy. Let it come to room temperature or gently warm it first for a silkier result.
Stir consistently during the simmer — Potato soups can catch on the bottom and scorch if left alone. A good stir every couple of minutes keeps everything smooth and prevents any burning.
Mash a few potatoes for extra body — If you prefer a thicker soup, scoop out a cup of cooked potato pieces before adding the liquids, mash them roughly, and stir them back in. Instant extra creaminess, no flour needed.
Add green onions just before serving — Stirring them in too early wilts them and mutes their fresh, sharp flavor. Keep them as a last-second topping for maximum impact.
Storage
Refrigerator: Let the soup cool completely before transferring to an airtight container. It will keep well in the fridge for up to 4 days. The soup will thicken as it sits — simply add a splash of chicken broth or milk when reheating over low heat, stirring gently to bring it back to the right consistency.
Freezer: Cream-based soups can sometimes separate when frozen, but this one holds up reasonably well. Store in freezer-safe containers for up to 2 months. Thaw overnight in the refrigerator and reheat slowly on the stovetop, whisking occasionally to recombine. Avoid boiling it during reheat, which can cause the dairy to break.
Tip: If you plan to freeze, consider holding back the half-and-half and stirring it in fresh when reheating — this gives you the best texture after thawing.
Perfect Potato Soup
Ingredients
- 6 russet potatoes peeled and cut into ½-inch cubes
- 5 slices bacon cut into ½-inch pieces
- 3 tbsp butter unsalted preferred
- 2 stalks celery cut into ¼-inch slices
- ½ large onion diced small
- 20 baby carrots cut into ¼-inch pieces
- 2 tsp kosher salt divided
- 1½ tsp black pepper freshly ground, divided
- 3 tbsp all-purpose flour
- 2 cups half-and-half room temperature preferred
- 1½ cups chicken broth low-sodium recommended
- ¼ tsp dried thyme
- ⅛ tsp cayenne pepper
- 1 dash ground nutmeg
- 4 green onions finely sliced, for garnish
- 1 dash paprika for garnish
Instructions
- Add the cubed potatoes to a large pot and cover with cold water. Bring to a boil and cook until fork-tender, about 10 minutes. Drain and set aside.2. In a large saucepan over medium-high heat, cook the bacon pieces, turning occasionally, until crispy, about 8 minutes. Transfer to a paper towel-lined plate and discard the grease from the pan.3. Melt the butter in the same saucepan over medium heat, scraping up any browned bits from the bottom. Add the celery, onion, carrots, 1 tsp salt, and ½ tsp pepper. Cook, stirring often, until tender, about 10 minutes. Sprinkle in the flour and stir for 2 minutes.4. Pour in the half-and-half and chicken broth. Add the potatoes, remaining salt, remaining pepper, thyme, cayenne, and nutmeg. Bring to a gentle boil, stirring frequently. Stir in the bacon. Reduce heat and simmer for 10 minutes, stirring often, until the soup thickens and flavors meld.5. Ladle into serving bowls and top each with a pinch of black pepper, sliced green onions, and a dusting of paprika.
Notes
- For a thicker soup, mash a cup of the cooked potatoes before adding the liquids and stir back in.
- Warm the half-and-half before adding to prevent the soup from seizing.
- Store leftovers in an airtight container in the fridge for up to 4 days. Add a splash of broth when reheating to loosen the consistency.
- Soup can be frozen for up to 2 months — for best results, stir in the dairy fresh when reheating rather than freezing it.
Nutrition Facts (Per Serving)
- Calories: 392
- Total Carbohydrate: 47g
- Dietary Fiber: 6g
- Total Sugars: 3g
- Protein: 11g
- Total Fat: 19g
- Saturated Fat: 11g
- Cholesterol: 55mg
- Vitamin C: 46mg
- Sodium: 1,157mg
- Calcium: 133mg
- Iron: 2mg
- Potassium: 1,140mg


Leave a Reply