This post may contain affiliate links. As an Amazon Associate, we earn from qualifying purchases. We only recommend products we trust.
There is nothing more comforting on a cold day than a bowl of perfectly thick, creamy, Homemade Cream of Potato Soup. This is the classic recipe—luxurious, hearty, and deeply satisfying—that proves you don’t need heavy whipping cream to achieve a rich, velvety texture. We rely on the simple magic of a butter-flour roux and the natural starchiness of Russet potatoes to create the best thick potato soup without cream.

This easy potato soup stovetop recipe is built on a traditional base of sautéed mirepoix (onion, celery, carrot), which adds depth of flavor. The potatoes are simmered until ultra-tender, then partially mashed (or blended) to release their starch, ensuring the soup clings perfectly to your spoon. Finished with savory spices and a rich dairy blend, this is the definitive classic creamy potato soup.
Table of Contents
Why You’ll Love This Soup
- Naturally Thick: Uses a light roux and Russet potatoes for thickening, relying on milk instead of heavy cream.
- Ultimate Comfort: Richly flavored with savory herbs and a unique spice profile (Worcestershire, mustard powder).
- One-Pot Method: Everything is made quickly on the stovetop, reducing cleanup time.
- Customizable Toppings: Perfect as a canvas for bacon, cheese, and chives—the essential “loaded” experience.
Ingredients
- 4 Tbsp Unsalted Butter
- 1 Large Onion, chopped
- ½ cup Chopped Celery
- ¼ cup Chopped Carrots
- 2 cloves Garlic, minced
- 2 Tbsp Chopped Fresh Parsley
- 4 Tbsp All-Purpose Flour
- 1 ½ cups Low-Sodium Chicken Broth (or vegetable broth)
- 1 ½ cups Whole Milk
- 3 Large Russet Potatoes, peeled and diced into ½-inch pieces
- 2 tsp Worcestershire Sauce
- 1 ½ tsp Dry Mustard Powder
- ½ tsp Dried Thyme
- ¼ tsp Ground Allspice
- ¼ tsp Cayenne Pepper (optional)
- ½ tsp Salt and ½ tsp Black Pepper
Instructions (Stovetop Method)
- Sauté Aromatics: In a large soup pot or Dutch oven, melt the butter over medium heat. Add the onion, celery, carrots, garlic, and parsley. Sauté until the vegetables are softened but not browned (about 5–7 minutes).
- Make the Roux: Sprinkle the all-purpose flour over the sautéed vegetables. Cook, stirring constantly, for 2 minutes.
- Add Liquid Base: Slowly whisk in the chicken broth, making sure to scrape up any browned bits from the bottom of the pot. Whisk until no lumps of flour remain.
- Simmer Potatoes: Add the milk, diced potatoes, Worcestershire sauce, dry mustard, allspice, thyme, cayenne, salt, and pepper. Stir well. Bring the mixture to a gentle simmer (do not boil).
- Thicken and Mash: Simmer on low heat, stirring frequently, until the potatoes are cooked through and tender (approximately 25 minutes). During the last 10 minutes of cooking, use the back of a wooden spoon or a potato masher to break up about half of the potatoes against the side of the pot. This releases the starch and thickens the soup further.
- Serve: Adjust seasoning to taste. Serve warm, topped with your favorite garnishes.

Storage and Expert Tips
- Best Potatoes for Creaminess: Use Russet potatoes (high starch content). Waxy potatoes (like Red Bliss or new potatoes) will not break down easily and won’t create the natural, thick consistency needed for this classic creamy potato soup.
- Roux Ratio: Ensure you cook the flour/butter mixture (the roux) for the full 2 minutes. This removes the raw, floury taste and enhances its thickening power.
- Puree for Silkiness (Optional): If you prefer an ultra-smooth soup, remove the pot from the heat and use an immersion blender to purée the soup entirely until silky.
- Reheating Leftovers: This soup thickens considerably when chilled. When reheating leftovers, add approximately ¼ cup of water or chicken broth per serving to loosen the soup and restore its original consistency.
Variations
- Loaded Soup: Stir in crispy crumbled bacon and shredded sharp cheddar cheese during the last 5 minutes of simmering.
- Lighter Version: Omit the flour (roux) and use skim milk. The soup will still thicken slightly due to the mashed potatoes but will be much thinner.
- Add Protein: Stir in 1 cup of cubed ham or pre-cooked shredded chicken after the soup has finished simmering.
For days when you have absolutely no time to cook, make sure you bookmark our definitive guide to 15 quick 30-minute soup recipes.
Serving Suggestions
- Toppings: Crispy bacon bits, fresh chives, shredded sharp cheddar cheese, and a dollop of sour cream.
- Side: Crusty French bread, oyster crackers, or a simple side salad.
Frequently Asked Questions
Q: Why does this cream of potato soup recipe use milk and not heavy cream? A: This recipe is designed to be thick and luxurious without the richness of heavy cream. It relies on the starch released from the Russet potatoes (when they are mashed/broken up) and the butter-flour roux to create the desired thick, creamy texture using lighter whole milk.
Q: Can I freeze this potato soup? A: It is not recommended. Dairy-based soups (even those made with milk) tend to separate or become grainy when frozen and thawed. It is best to enjoy this soup fresh or refrigerate the leftovers for up to 3 days.
Q: What is the best way to keep the soup from sticking to the bottom of the pot? A: Stir frequently! As the potato starches are released, the soup thickens and is prone to sticking. Stirring every few minutes, especially during the last 15 minutes of the simmer, is essential.
Q: How do I ensure my potatoes are tender enough to break down? A: Cut the potatoes into small, uniform ½-inch pieces. This ensures they all cook at the same rate. If the pieces are large or uneven, the soup will require longer cooking time.

Homemade Cream of Potato Soup (Classic Roux & Rich, Thick Comfort)
Equipment
- large soup pot or Dutch oven
- Whisk
- potato masher or wooden spoon
Ingredients
- 4 Tbsp unsalted butter
- 1 large onion, chopped
- 0.5 cup chopped celery
- 0.25 cup chopped carrots
- 2 cloves garlic, minced
- 2 Tbsp chopped fresh parsley
- 4 Tbsp all-purpose flour
- 1.5 cups low-sodium chicken broth (or vegetable broth)
- 1.5 cups whole milk
- 3 large Russet potatoes, peeled and diced into 1/2-inch pieces
- 2 tsp Worcestershire sauce
- 1.5 tsp dry mustard powder
- 0.5 tsp dried thyme
- 0.25 tsp ground allspice
- 0.25 tsp cayenne pepper (optional)
- 0.5 tsp salt
- 0.5 tsp black pepper
Instructions
- Melt butter in a large soup pot over medium heat. Add onion, celery, carrots, garlic, and parsley. Sauté for 5–7 minutes until vegetables are softened but not browned.
- Sprinkle flour over the vegetables. Cook, stirring constantly, for 2 minutes to form a roux.
- Slowly whisk in the chicken broth, scraping up any browned bits. Whisk until no lumps remain.
- Add milk, diced potatoes, Worcestershire sauce, mustard powder, thyme, allspice, cayenne, salt, and pepper. Stir well and bring to a gentle simmer (do not boil).
- Simmer for 25 minutes, stirring often, until potatoes are tender. Mash about half the potatoes against the pot to thicken the soup.
- Taste and adjust seasoning. Serve warm with bacon, cheese, and chives if desired.