Thick & Creamy Ham and Potato Soup (Uses Up Holiday Ham!)
Thick and Creamy Ham and Potato Soup 💛🥔 is hearty and very filling thanks to chunks of savory ham and potatoes in every bite! If you have leftover holiday ham, this easy 30-minute soup recipe is perfect. I top it with cheese for extra richness and flavor!

Creamy Ham and Potato Soup Recipe
- When I say this ham and potato soup is extra thick, rich, and creamy I’m not kidding! It’s pure comfort food. If you have leftover holiday ham from Thanksgiving, Christmas, or Easter, this soup is ideal!
- It’s an easy soup recipe that’s ready in 30 minutes and helps use up your extra ham. If you don’t have holiday ham, you can grab some ham from your grocery store and dice it.
- I use plenty of Russet potatoes, which are starchy potatoes, so they also serve to naturally help thicken the soup. Potatoes stick to your ribs so this soup keeps you full for hours! Topped with cheddar cheese, I’d almost call this loaded ham and potato soup!
- If you’re looking for a lighter soup, try this Ham and Potato Soup which is made without dairy – no cream and no cheese – and still takes a ham bone and ham off your hands.


Ingredients in Ham and Potato Creamy Soup
Vegetables + Butter + Flour: Onions, celery, garlic all add flavor. Sauteed in butter, and then later the flour helps thicken the soup. If you have other veggies like carrots, they work well too.
Potatoes: I use Russet potatoes because they’re starchy so they fall apart a bit into the broth, which was my goal in order to give the soup some extra thickening. You can use waxy potatoes like Yukon golds or red potatoes. I peel mine but with waxier potatoes you may be able to skip peeling them.
Liquids: Reduced sodium chicken broth is what I recommend since ham is salty and you can always add more salt later. Whole milk is preferred. I don’t think you need half-and-half and definitely not heavy cream. This soup is creamy enough without them.
Ham: You want to use previously cooked and cubed ham. It doesn’t matter if it’s a honey ham, smoked ham, a piece of ham from your grocery store deli counter that you cube, a ham steak, or other favorite ham. If you have a leftover ham bone, you can add it to the pot and it’ll add a stronger ham flavor to the soup.
Seasonings: Bouillon, salt, pepper, and fresh parsley are the minimum but if you have fresh herbs (they have the best flavor) from holiday cooking or entertaining in your fridge like thyme, oregano, or rosemary, they’re great.
Cheese: I use sharp cheddar cheese both stirred into the soup and a bit extra for topping each bowl, but mild cheddar, extra sharp, Monterey Jack, provolone, or other cheese that melts well may be used.
Note: Scroll down to the recipe card section of the post for the ingredients with amounts included and for more complete directions.


How to Make Creamy Potato and Ham Soup
- To a large Dutch oven or large stockpot, melt butter, add onions, celery, and saute over medium-high heat for about 5 minutes.
- Add the garlic, potatoes, and cook for 1 minute. Sprinkle the flour over the top and cook for another minute.
- Pour in the broth followed by the milk, ham, ham bone if using, seasonings, whisk, bring to a boil, then reduce to a simmer for about 10-12 minutes, or until the potatoes are fork-tender. For a thicker soup, while simmering, smash about 1/3 of the potatoes.
- Remove the ham bone, reduce to medium-low heat, add the cheese, stir to combine, taste for seasoning balance and adjust the salt and pepper as desired.
- Optionally garnish the hearty soup with fresh parsley, fresh herbs as desired, more cheese, optional sour cream, green onions, or chives. I love a nice sourdough crusty bread with this!
Note: Scroll down to the recipe card section of the post for step-by-step photos and process shots of the cooking process.
- 5 tablespoons unsalted butter
- 1 small yellow onion, diced small (about 2/3 cup)
- 1 stalk celery, diced small
- 3 cloves garlic, finely minced
- 2 pounds Russet potatoes, peeled and diced into small bite-sized pieces no bigger than 1/2-inch (Yukon gold may be substituted but soup will not be as thick)
- 5 tablespoons all-purpose flour
- 3 cups of chicken broth, I use reduced sodium and add additional salt to taste
- 2 cups whole milk
- 1 ½ to 2 cups cooked ham, diced small
- Ham bone, optional
- 1 tablespoon Better Than Bouillon, or your favorite bouillon
- ½ teaspoon salt, plus more to taste
- ½ teaspoon freshly ground black pepper, or to taste
- ½ cup shredded cheddar cheese, optional but recommended plus more for garnishing each bowl as desired
- 1 tablespoon fresh parsley, or to taste, for garnishing
- To a large Dutch oven, add the butter, onions, celery, and saute over medium-high heat for about 4-5 minutes; stir frequently.
- Add the garlic, potatoes, and saute for 1 minute; stir continuously. Tip – The potatoes will be the item that holds up the soup from being done because they’ll take the longest to cook through. Make sure to keep the pieces no bigger than 1/2-inch dice.
- Evenly sprinkle the flour over top and cook for 1-2 minutes; stir nearly continuously. Tip – The flour + butter in the pot will create a roux, which will help thicken the soup. You want to make sure to develop the roux so that the soup thickens properly later on and so that there’s no raw flour taste.
-
Add the broth, milk, diced ham, ham bone if using, bouillon, salt, pepper, optional parsley now or garnish with it at the end, bring to a boil and then reduce heat to a simmer. Simmer until the potatoes are tender, about 10-12 minutes, although it’s dependent on how fast your simmer was and the size/hardness of your potatoes. Tips – Simmer until potatoes are nicely done because a hard potato in soup is very unappetizing! While simmering, if you want the soup to be thicker, use a potato masher to gently mash some the potatoes. I estimate that I mashed about 1/3 of them, but just eyeball it and judge things based on the thickness and consistency. If at any time the soup has gotten too thick, add additional broth/milk, as necessary.
- When the potatoes are done, if you used a ham bone, remove it. Turn the heat to low, add the cheese, and stir to combine and melt it, about 1 minute.
- Taste the soup and as necessary, make any necessary flavor adjustments.
- Flavoring Tips – If the soup tastes at all flat, boring, bland, or dull, it likely needs more salt so don’t be afraid to add it. It depends on how salty the ham is, if you used a ham bone (which also leeches salt), if you used regular or reduced sodium broth is, the cheddar cheese saltiness, and your overall preference for saltiness. Additionally, consider adding a bit more pepper, or any fresh herbs that you may have on hand. I also like to add a bit of red pepper flakes to soup because they don’t make it spicy, but rather just give extra flavor, but always season to your personal taste preferences.
- Ladle into bowls and top with extra cheese if desired, to taste, and serve immediately.
Storage: Leftover soup will keep airtight in the fridge for up to 5 days. Reheat very gently in the microwave taking care not to overheat it because of the dairy in the soup and you don’t want it to separate, or “break”. I personally have never frozen the soup for that reason – freezing dairy proteins can be tricky.
Serving: 1serving, Calories: 352cal, Carbohydrates: 39g, Protein: 13g, Fat: 17g, Saturated Fat: 10g, Polyunsaturated Fat: 1g, Monounsaturated Fat: 4g, Trans Fat: 0.4g, Cholesterol: 58mg, Sodium: 524mg, Potassium: 867mg, Fiber: 3g, Sugar: 6g, Vitamin A: 581IU, Vitamin C: 16mg, Calcium: 201mg, Iron: 2mg
Nutrition information is automatically calculated, so should only be used as an approximation.






