A thick and hearty soup, this creamy ham and potato soup is loaded with flavor and is pure comfort food. While great any time of the year, this ham soup is perfect for using up some leftover ham from holidays like Christmas and Easter as well.
Creamy ham and potato soup is made with a mixture of both stock, milk, and/or cream. Adding ham to what is basically potato soup creates an even more savory experience. It is also a great way to use up leftover holiday ham. I like adding a mirepoix of onions, carrots, and celery, but feel free to switch things up to your own preferences.
What I love about this soup is how the ham adds a subtle, smoky, savory flavor, while the veggies and cream add a touch of sweetness. The starchy potatoes create a pleasant thickness to the soup as well as a smooth but firm texture in each spoonful. I also love using up leftover ham in ways besides ham sandwiches or ham and eggs for days on end after a holiday.

Jump to:
🥘 Ingredients for Creamy Ham & Potato Soup
If you’re making this ham and potato soup recipe with leftovers after a holiday like Christmas or Easter, you’ll probably have everything on hand already. Otherwise, just grab a few, inexpensive produce and thick-sliced ham and you will be good to go.
Ham – Almost any kind of leftover ham works great here. Try to use a thicker sliced ham, roughly ¼” thick so that it makes decently sized chunks when chopped up for soup. If you’re not making this with leftover ham, look in stores for a thicker cut ham steak. The single, 8-ounce slices of ham work perfectly here.
Potatoes – I used Russet potatoes here because that’s what I had, but almost any potato will work fine here. You could use Russets, Yukon Gold, red potatoes, fingerling, or small red or yellow potatoes peeled or skin-on. Chop them into bite-sized pieces so that they cook quickly and are easy to eat.
Mirepoix – I used a standard soup mirepoix here of yellow onions, carrots, and celery. Feel free to cut back to just some onion or shallot, or mix things up with other veggies like leeks, green onion, chives, parsnips, celery root, etc. I also add a bit of fresh garlic.
Flour – Before adding liquid, you’ll toss some flour with the vegetables to help thicken the soup. If you need this to be gluten-free, you can omit the flour and thicken in other ways like a cornstarch or potato starch slurry later in the cooking process.
Seasoning & Herbs – I keep things simple here with some salt, black pepper, and fresh thyme. You can play around with other fresh or dried herbs as well if you like.
Stock – I use unsalted or low sodium chicken stock here, which is common with potato soup. If you have it, homemade ham stock or homemade chicken stock would also work well, or just some vegetable broth if you like.
Milk & Cream – This part is down to personal preference. I use a mix of whole milk and heavy cream here. I add the heavy cream near the end to help thicken a little bit and add a touch of richness. You could also use 1-2% milk or switch the heavy cream for half-and-half, or just use all of one dairy, but I find all heavy cream to be a bit too rich for soup.
Toppings – These are optional, but I like topping this soup with things like shredded cheddar, bacon bits, and some fresh parsley or green onion. You could also try other cheeses, some reserved or extra ham, or chives as well.
🔪 How to Make Ham & Potato Soup
Start by dicing your ham into small cubes, then small dice the vegetables and mince the garlic (the carrots can also be cut into coins instead, if you prefer). Chop the potatoes into roughly 1” cubes and set everything aside.
This is optional, but I like to start by searing the ham for 3-5 minutes in my Dutch-oven or stockpot on medium to medium-high heat. Once it is lightly browned, remove and set aside for later.
To the Dutch-oven or stock pot, add butter and melt over medium heat. Once melted, add the diced onion, carrots, and celery. Season with a pinch of salt and black pepper and sauté for 5-6 minutes, just until the onions start to turn translucent.
Add the minced garlic and continue cooking for about a minute more. Now add the flour and keep stirring to cook the flour for about 2 more minutes. Slowly pour in the milk while constantly stirring/whisking and allow it to come to a simmer for 3-5 minutes.
At this point, pour in the chicken stock, chopped potatoes, seasoning and herbs, and return the ham to the pot. Bring everything to boil and then turn down to a simmer. Continue cooking, uncovered, for at least 12-15 minutes until the potatoes feel fork tender.
Finally, add in the cream and let it simmer until the soup is heated throughout. This should only take a few minutes. Taste for seasoning and remove the thyme stems. At this point you can serve the soup or thicken or thin it out to your preference. See below for some tips on this.
Optionally, I like to top this creamy ham and potato soup like a loaded potato soup. You can add some shredded cheese, extra ham or bacon, and some chopped green onions or fresh parsley.
💭 Tips for Creamy Ham & Potato Soup
Keep ham and potatoes the star. I like adding vegetables to the soup, but whatever you use, try to keep it to roughly 3 cups or less. These should be about equal to the volume of chopped potatoes you use or a bit less.
Sauté veggies in butter. I prefer to use butter here because it adds a nice flavor. The main reason though is I find using oil can later separate in the soup and float to the top.
Room temperature liquids. This isn’t a huge deal, but if your stock, milk, and cream are at or near room temperature while making the soup, it won’t take as long for them to heat up. The cream is the most important to have sitting out, since you’re adding it late in the process, this will help from cooling the soup down too much and taking a longer time to get back up to temperature.
Thinning the soup. If the soup is a bit thicker than you prefer, simply add a bit more stock until the soup is thinned out to your preference.
Thickening the soup. There are several ways to thicken this soup and each can work well. The first option is to cook at a stronger simmer for a bit longer to reduce the soup more. This will thicken it but also lessen the amount of soup you end up with. Another option is to use a cornstarch or potato starch slurry. Mix ¼ cup of milk and ¼ cup of cornstarch/potato starch and add near the end of cooking. Bring it to a strong simmer again and let it cook for a few minutes to see if it is thick enough.
Another option for thickening is to use an immersion blender to blend some of the potato chunks, or remove some of the potato and mash in a bowl and add back in. My favorite way, however, is to use a bit of unflavored, instant potato powder. Add about a tablespoon at a time and give it a few minutes to thicken, then add more if needed. This thickens the soup nicely while adding to the potato flavor.
❄️ How to Store Ham & Potato Soup
Once cooled completely, you can store this soup in the refrigerator for about 3-4 days. Keep in mind that this soup will thicken much more as it cools, and especially after being refrigerated. Because of this, I recommend reheating portions on a pot on the stove and adding a touch of milk to help thin it out some as you reheat it.
Creamy ham and potato soup also freezes well. If you make a large batch, or have too much leftover to finish within a few days, I recommend freezing it instead of refrigerating it. The best way to freeze soup is to portion it into single servings and then freeze in airtight containers.
Thaw frozen soup overnight in the fridge and then reheat the same as mentioned above. This soup freezes well for about 3 months.
📋 Recipe
Creamy Ham and Potato Soup
Ingredients
- 8 ounces diced ham, about 2 cups
- ¼ cup butter
- 1 medium yellow onion, diced, about 1 ½ cups
- 1-2 medium carrots, chopped, about ½ cup
- 1-2 ribs celery, diced, about ½ cup or so
- 2-3 cloves garlic, minced
- 1-1 ½ pounds potatoes, about 3 cups 1” cubes
- ¼ cup all-purpose flour
- 2 cups whole milk, see note
- 3-4 cups low sodium chicken stock, see note
- ½ teaspoon kosher salt, more to taste
- ½ teaspoon ground black pepper, more to taste
- 2 sprigs fresh thyme, optional
- 1 cup heavy cream, at room temperature
Directions
- Start by dicing 8 ounces of ham into small cubes, then small dice the yellow onion, carrots, and celery and mince 2-3 cloves of garlic (the carrots can also be cut into coins instead, if you prefer). Chop the potatoes into roughly 1” cubes and set everything aside.
- This is optional, but I like to start by searing the ham for 3-5 minutes in my Dutch-oven or stockpot on medium to medium-high heat. Once it is lightly browned, remove and set aside for later.
- To the Dutch-oven or stock pot, add ¼ cup of butter and melt over medium heat. Once melted, add the diced onion, carrots, and celery. Season with a pinch of salt and black pepper and sauté for 5-6 minutes, just until the onions start to turn translucent.
- Add the minced garlic and continue cooking for about a minute more. Now add ¼ cup all-purpose flour and keep stirring to cook the flour for about 2 more minutes. Slowly pour in 2 cups of whole milk while constantly stirring/whisking and allow it to come to a simmer for 3-5 minutes.
- At this point, pour in 3 cups of low sodium chicken stock, the chopped potatoes, ½ teaspoon kosher salt, ½ teaspoon black pepper, 2 sprigs of fresh thyme, and return the ham to the pot. Bring everything to boil and then turn down to a simmer. Continue cooking, uncovered, for at least 12-15 minutes until the potatoes feel fork tender.
- Finally, add 1 cup of heavy cream and let it simmer until the soup is heated throughout. This should only take a few minutes. Taste for seasoning and remove the thyme stems. At this point you can serve the soup or thicken or thin it out to your preference. See below for some tips on this.
- Optionally, I like to top this creamy ham and potato soup like a loaded potato soup. You can add some shredded cheese, extra ham or bacon, and some chopped green onions or fresh parsley.
Comments
No Comments