This post may contain affiliate links. Please read our disclosure policy.
Warm, comforting, and bursting with flavor — this creamy ham and potato soup is everything you crave in a cozy bowl. It’s rich, velvety, and loaded with hearty potatoes, tender ham, and melted cheese. Perfect for when you need a soul-warming meal that tastes like home.
Great for leftover fresh ham roast or baked ham with glaze.

You’ll also love my bean soup with ham, Outback’s baked potato soup, potato corn chowder, and sausage potato soup.

Quick Look at This Recipe
- Prep Time: 15 minutes
- Cook Time: 30 minutes
- Total Time: 45 minutes
- Servings: 6-8
- Dietary Info: Gluten-based, can be made gluten-free with substitutions
- Method: Stovetop
- Technique: Sauté + simmer + thicken
- Flavor & Texture: Creamy, cheesy, savory, and deeply comforting
Why you’ll love this family favorite!

This Creamy Cheesy Ham and Potato Soup tastes like home in a bowl. It’s one of those recipes that feels cozy, nourishing, and just a little nostalgic — the kind you make on a chilly evening when you crave something warm and hearty. The creamy base, tender potatoes, and savory bits of ham create the perfect balance of flavor and comfort.
It’s simple enough for a weeknight, yet special enough to serve after a holiday when you’re using leftover ham. My kids always go back for seconds, and I love serving it with a slice of crusty no-knead bread or homemade dinner rolls.
Made With Amore,

Table of Contents
Ingredients for Ham Potato Soup

Base & Vegetables
- Olive oil – adds depth and helps the vegetables develop flavor as they sauté.
- Butter – creates richness and forms the base of the creamy roux.
- Yellow onion, celery, and carrot – the aromatic trio that gives the soup its savory foundation and natural sweetness.
- Garlic – brings warmth and a touch of Italian flavor to every spoonful.
- Corn (optional) – adds pops of sweetness and texture.
Soup Body
- Potatoes (Yukon gold preferred) – creamy, buttery potatoes that hold their shape and thicken the soup naturally.
- Chicken broth – forms the savory liquid base of the soup.
- Bay leaf and nutmeg – subtle spices that layer warmth and depth into the broth.
- Salt and black pepper – for balance and seasoning throughout.
- Creamy Base (Roux)
- Flour – thickens the soup to a velvety consistency.
- Milk – gives the soup its smooth, creamy texture.
Main Flavor
- Cooked ham – diced into bite-size cubes for a salty, smoky, hearty flavor.
- Finishing Touches
- Cheddar cheese – adds creaminess and a touch of sharpness that blends perfectly with the ham and potatoes.
- Fresh chives or parsley – for a bright, fresh garnish that balances the richness.
See the recipe card for exact quantities.
Substitutions and Variations
- Potatoes: Yukon golds are best for a creamy, buttery texture, but russet or red potatoes also work. Russets will make the soup thicker and heartier.
- Ham: Substitute with cooked bacon, pancetta, or diced rotisserie chicken if you don’t have ham.
- Broth: Chicken broth adds the most flavor, but vegetable broth can be used for a lighter or vegetarian version. Use homemade broth, such as in my pastina soup.
- Milk: Whole milk gives a rich, velvety texture. For extra creaminess, replace part of it with half-and-half or heavy cream.
- Cheese: Sharp cheddar is classic, but you can mix in gouda, fontina, or gruyère for a deeper flavor. You’ll love my copycat Panera broccoli cheddar soup.
- Herbs: Fresh parsley or chives are bright and mild, but thyme or rosemary can be added for an earthier note.
- Corn: Optional but lovely — adds sweetness and texture, especially if you’re using leftover holiday ham. Try my 15 Bean Soup with Ham next time.
How To Make Ham and Potato Soup
This is a step-by-step photo overview of the creamy potato soup with ham recipe; the full instrcutions are in the recipe card below.

Step #1: Sauté the vegetables: In a large pot or Dutch oven, heat olive oil over medium heat. Add the onion, celery, and carrot. Sauté until the vegetables are soft and fragrant, about 5–7 minutes. Add the garlic and corn (if using) and cook for 1 more minute.

Step #2: Build the soup base: Add the diced potatoes, chicken broth, bay leaf, nutmeg, salt, and black pepper to the pot. Stir to combine. Bring to a gentle boil, then reduce the heat to medium-low and simmer uncovered for 15–20 minutes, or until the potatoes are tender when pierced with a fork.

Step #3: Make the roux: In a separate medium-size saucepan, melt the butter over medium-low heat. Whisk in the flour until smooth.

Step #4: Cook for about 1 minute, whisking constantly (this should stay a blonde roux, so don’t let it brown). Gradually whisk in the milk, cooking for about 4 minutes until thickened and warm.

Step #5:Combine and finish: Slowly pour the warm milk mixture into the soup pot, stirring to combine. Add the diced ham and simmer for 5–10 more minutes, allowing the flavors to meld and the soup to thicken.

Step #6: Serve: Remove the bay leaf and taste for seasoning. Ladle into bowls and top with shredded cheddar cheese and a sprinkle of fresh chives or parsley. Serve warm with crusty bread or my easy homemade rolls.

My Pro Tips
Recipe Tips
- Sauté the veggies slowly: Don’t rush this step! Letting the onion, celery, and carrot soften in olive oil builds the rich flavor base that makes this soup shine.
- Make a smooth roux: Whisk the butter and flour until silky before adding milk. This creates a velvety, lump-free base for your creamy soup.
- Add warm milk, not cold: Warm milk blends more easily into the roux and keeps the soup smooth without curdling.
- Use freshly grated cheese: Pre-shredded cheese contains anti-caking agents that can make the soup grainy. Grate it fresh for the best creamy melt.
FAQ’s
This recipe uses a classic blonde roux (a cooked butter-and-flour base) to create a naturally creamy texture. If you want it even thicker, mash some of the potatoes right in the pot or stir in a handful of shredded cheese before serving.
I don’t recommend freezing it since soups with milk or cream can separate and become grainy once thawed. If you want to freeze it, do so before adding the milk, then add the creamy base when you reheat it later.
Yes! It tastes even better the next day as the flavors meld. Let it cool completely, then store in the fridge for up to 4 days. Reheat slowly on the stovetop and add a splash of milk or broth to loosen the texture if it thickens overnight.
Storage: Refrigerate in an airtight container up to 4 days. Freezing is not recommended.
Reheating: Warm gently on the stovetop, adding a splash of milk or broth if it thickens too much.

More Soup Recipes
💙 MADE THIS RECIPE AND LOVED IT? 💙 Please leave a ⭐️STAR rating and COMMENT below- I love connecting with you! Tag me with your creations on Instagram and find me on Pinterest.
Ham and Potato Soup Recipe

Ingredients
For the Soup:
- 2 tablespoons olive oil
- 1 medium yellow onion, finely chopped
- 2 stalks celery, finely chopped
- 1 carrot, peeled and finely chopped
- 2 –3 large garlic cloves, finely chopped
- 1 cup corn kernels, fresh or frozen (optional)
- 4 cups Yukon gold potatoes Idaho Russets also work, peeled and diced (about 3–4 medium potatoes)
- 4 cups chicken broth
- 1 bay leaf
- ¼ teaspoon ground nutmeg
- 1 ½ teaspoons kosher salt, or to taste
- 1 teaspoon freshly ground black pepper
- 2 cups cooked ham, diced
For the Creamy Base (Roux):
- 2 tablespoons unsalted butter
- ⅓ cup all-purpose flour
- 2 ½ cups whole milk, slightly warmed
For Topping:
- 1 cup shredded cheddar cheese
- 2 tablespoons chopped chives or parsley
Instructions
- Sauté the vegetables: In a large pot or Dutch oven, heat olive oil over medium heat. Add the onion, celery, and carrot. Sauté until the vegetables are soft and fragrant, about 5–7 minutes. Add the garlic and corn (if using) and cook for 1 more minute.
- Build the soup base: Add the diced potatoes, chicken broth, bay leaf, nutmeg, salt, and black pepper to the pot. Stir to combine. Bring to a gentle boil, then reduce the heat to medium-low and simmer uncovered for 15–20 minutes, or until the potatoes are tender when pierced with a fork.
- Make the roux: In a separate medium-size saucepan, melt the butter over medium-low heat. Whisk in the flour until smooth. Cook for about 1 minute, whisking constantly (this should stay a blonde roux, so don’t let it brown). Gradually whisk in the milk, cooking for about 4 minutes until thickened and warm.
- Combine and finish: Slowly pour the warm milk mixture into the soup pot, stirring to combine. Add the diced ham and simmer for 5–10 more minutes, allowing the flavors to meld and the soup to thicken.
- Serve: Remove the bay leaf and taste for seasoning. Ladle into bowls and top with shredded cheddar cheese and a sprinkle of fresh chives or parsley. Serve warm with crusty bread or my easy homemade rolls.
Notes
- Sauté the veggies slowly: Don’t rush this step! Letting the onion, celery, and carrot soften in olive oil builds the rich flavor base that makes this soup shine.
- Make a smooth roux: Whisk the butter and flour until silky before adding milk. This creates a velvety, lump-free base for your creamy soup.
- Add warm milk, not cold: Warm milk blends more easily into the roux and keeps the soup smooth without curdling.
- Use freshly grated cheese: Pre-shredded cheese contains anti-caking agents that can make the soup grainy. Grate it fresh for the best creamy melt.
- Make-Ahead: Cook up to 2 days ahead; flavors deepen overnight.
- Storage: Refrigerate in an airtight container up to 4 days.
- Reheat: Warm gently on the stovetop; add a splash of milk if it thickens too much.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.












I used the 2 Tbsp. of butter & 1/3 cup flour per the recipe (melted the butter before I added the flour) & it was clumpy and would not mix together well. Kept adding butter until I got a smooth consistency which ended up being 5 Tbsp. of butter. Not sure what I was doing wrong? Otherwise the recipe was good!
Great question, and Iโm glad you still enjoyed the soup. You didnโt do anything wrong. That step is meant to be a quick roux, and sometimes butter brands, flour type, or heat level can cause it to seize up and look clumpy at first.
Next time, keep the heat on medium-low and whisk the flour into the melted butter slowly. It will look thick and pasty before it smooths out, and adding the liquid gradually helps it come together. Adding a little extra butter, like you did, is also a perfectly fine fix.
Thank you so much for cooking along with me and for sharing your experience, it really helps others too. ๐
This was delicious and such a great way to use up leftover ham!!