This post may contain affiliate links. See my disclosure policy.
This Ham and Potato Soup is the perfect thick, creamy, and delightfully chunky potato soup filled with salty chunks of ham and tender potatoes. Thickened with a quick buttery roux and finished with cream, it is my favorite way to use up leftover holiday ham.

My Favorite Creamy Ham and Potato Soup—Here’s Why
Soup season is upon us, I can feel it. To kick off my favorite season of the year, I’m sharing with you my favorite ham and potato soup recipe. Intentionally chunkier than my classic potato soup recipe, this hearty variation isn’t blended. Instead, it is made with CHUNKS of tender potatoes and smoky ham in a rich and creamy base.
Like a big hug, it is guaranteed to warm you from the inside out. Here are a few more reasons why you’ll love it:
- Easy to make. Simple ingredients, one pot, and straightforward steps make this a weeknight-friendly soup ready in less than an hour.
- Versatile and fuss-free. Use leftover holiday ham or ham steak, swap in your favorite potatoes or add vegetables like carrots and cauliflower!
- Roux-thickened and cream-finished. A quick buttery roux gives the soup a rich, velvety body, and the cream added at the end keeps it smooth and cozy without feeling or tasting heavy.
Table of Contents
Ingredients + Substitutions
Everything you need to make this easy potato soup with ham, including substitutions:

Potatoes – This recipe starts with chunks of potatoes that turn soft and creamy as they simmer, while still staying nice and chunky in the bowl. Starchier Russet potatoes crumble apart faster than waxy Yukon Gold’s, which tend to hold their shape. Substitute: Red potatoes or baby potatoes (no peeling needed).
Pro Tip: If you use Russets, peel the skin before adding them to the soup. They have thicker skins than Yukon Gold or red potatoes. Check out my post about the different types of potatoes to learn more.
Ham – Ham is what makes this chunky potato soup so irresistible! In this recipe, we’re browning the diced ham first to infuse savory, smoky flavor throughout the entire pot. If you have leftover honey baked ham, this is the perfect recipe for it! Otherwise, a ham steak (sold at most grocery stores) works just as well. Substitute: Smoked sausage, bacon, or even ground sausage are great ham replacements.
Pro Tip: If you have a leftover ham bone, add it to the pot with the broth and potatoes. Let it simmer with the soup, then remove the bone before adding the cream. If there is extra meat on the bone, shred it and stir it back in.
Vegetables and Aromatics – A simple combination of onion, celery, and garlic is the flavor base (aka mirepoix) for this potato and ham soup. Cooking them slowly softens the vegetables and builds a rich, savory foundation before the broth and potatoes are added. Substitute: Leeks for a milder, slightly sweeter onion flavor. You can also add other veggies like carrot, cauliflower, or broccoli.
Butter – Butter adds richness and is essential for making the roux, which thickens the soup without blending the potatoes. It also helps soften the vegetables and adds that classic, cozy flavor.
All-Purpose Flour – Flour combines with butter to form a quick roux, giving this creamy ham and potato soup its thick, velvety texture. Substitute: A 1:1 gluten-free all-purpose flour blend.
Seasoning – This soup includes paprika, salt, and black pepper, that’s it! The goal is to enhance the ham flavor without overpowering it. Substitute: Smoked paprika for deeper, smoky flavor and/or add a pinch of cayenne for gentle heat.
Low-Sodium Chicken Broth – Broth creates the savory base for the soup. I recommend low-sodium since ham can be quite salty. This way, you can season to taste at the end. Substitute: Vegetable broth or water.
Heavy Cream – Heavy cream is stirred in at the end to make the soup rich, smooth, and extra creamy. Keep the heat low after adding it and avoid boiling to maintain the best texture. Substitute: half-and-half or whole milk for a lighter version.
Find the printable recipe with measurements in the recipe card below.
How to Make Potato Soup with Ham
1. Brown the ham and soften the vegetables. Melt the butter in a large soup pot or Dutch oven over medium heat. Add the diced ham, celery, and onion, plus a pinch of salt (about 1/4 teaspoon). Cook, stirring often, until the ham starts to turn golden and the vegetables are softened. Stir in the garlic and cook for 1 minute, just until fragrant.
2. Build the roux. Sprinkle the flour, paprika, and black pepper over the ham and vegetables. Stir well so everything is evenly coated, then cook for about 1 minute, stirring constantly.


3. Stir in the broth, then add the potatoes. Slowly pour in the chicken broth while stirring to keep the roux smooth and to dissolve any flour. Add the diced potatoes and stir to combine.
4. Simmer until the potatoes are tender. Increase the heat and bring the soup to a gentle boil. Reduce the heat to maintain a steady simmer and cook, stirring occasionally, for 10 to 15 minutes, or until the potatoes are fork-tender.


5. Finish with cream: Turn off the heat, then slowly stir in the cream, stirring continuously as you pour. Return the pot to low heat and cook for about 5 minutes to warm everything through. Do not let the soup boil once the cream is added.
6. Taste and adjust: Taste the soup and add more salt if needed.
7. Garnish and serve: Ladle into bowls and top with chopped chives, shredded cheddar, and bacon bits, if desired.

Flavor Variation
To Make Cheesy Ham and Potato Soup
To make this ham and potato soup extra rich and cheesy, stir in freshly shredded cheddar cheese at the very end of cooking. Keep the heat low (or turn it off completely), then add the cheese a handful at a time, stirring until it melts before adding more. Avoid boiling once the cheese is added, as high heat can make the soup turn grainy or separate.
Jessica’s Recipe Tips
the Best Potatoes for Ham and Potato Soup
The type of potato you choose controls the final texture. For a smoother, creamier potato soup, use Russet potatoes. Their higher starch content helps them break down and naturally thicken the broth. For a (guaranteed) chunkier potato soup with ham, choose Yukon Gold, red potatoes, or baby potatoes since they hold their shape better. If you like a texture somewhere in between, use a mix of Russet and Yukon Gold.
Should You Peel the Potatoes?
Peeling is optional, but it is strongly recommended if you are using Russet potatoes. Russets have thicker, rougher skins that can make the soup feel a little…chewy. Peeling them gives you a smoother, more consistent texture. If you are using Yukon Gold or red potatoes, you can leave the skins on.
Go Easy on the Salt
Ham can be quite salty, so it is best to season slowly. Start with a small pinch of salt when sautéing the onions, then wait until the soup is finished before adding more. Using low-sodium chicken broth also helps you control the final salt level, especially if you are using salted butter or a saltier ham. Taste at the end and adjust only if needed.
Control the Texture: Creamy vs Chunky Potato Soup
This ham and potato soup is meant to be chunky. The potatoes stay in pieces, and the soup thickens from a quick roux plus the starch released as the potatoes simmer. If you prefer a thicker, creamier soup without fully blending it, blend just a portion of the potatoes and broth until smooth, then stir it back into the pot. Leave the ham out of the blender so the texture stays hearty and the ham pieces remain intact.

Storage and Reheating
- To store: If you have leftovers, let them cool to room temperature (no longer than 2 hours), then transfer to an airtight container. Store in the refrigerator for up to 3 to 4 days. Note: Because this soup is thick and creamy, it will continue to thicken as it chills.
- To reheat: Reheat gently in a saucepan over medium-low to low heat, stirring often, until heated through. Avoid boiling, especially if you added cream and/or cheese, since high heat can cause the soup to separate or turn grainy. If the soup is too thick, stir in a splash of chicken broth, milk, or half-and-half until it reaches your desired consistency.
- To freeze: I do not recommend freezing this ham and potato soup. Cream-based soups can separate after thawing, and cooked potatoes often turn grainy or mealy.
More Cozy Soup Recipes
Craving a different kind of potato soup? Try my potato leek soup for a silky, blended, leek-forward option, Panera broccoli cheddar soup, or my broccoli potato soup when you want something extra veggie-packed. Need a non-dairy alternative? My dairy-free cauliflower, leek, and potato soup is a great choice when you want the same cozy vibe without the cream.
If you try making this chunky potato and ham soup recipe, I’d love to hear what you think! Please leave a comment and a star rating below, your feedback helps other readers discover (and enjoy) this recipe too. Thank you so much! 💛

Ham and Potato Soup Recipe
Ingredients
- 4 tablespoon butter
- 1 pound ham, about 2 cups, diced into ½ to 1-inch pieces
- 1 large yellow onion, diced
- 2 stalks celery, chopped
- ¼ teaspoon salt
- 3 cloves garlic, minced
- 3-4 tablespoon all-purpose flour
- 1 teaspoon paprika
- ½ teaspoon black pepper
- 6 cups low-sodium chicken broth
- 2 pounds potatoes, Yukon Gold, Russet, Red potatoes, or a combination; cut into 1-inch pieces. See notes
- 2 cups heavy cream, or half-and-half
- fresh chives, shredded cheese, or bacon, to garnish (optional)
Instructions
- Melt the butter in a large soup pot or Dutch Oven set over medium heat. Add the ham, celery, diced onion, and a pinch of salt (about 1/4 teaspoon). Cook until the ham is golden and the veggies have softened, stirring often.
- Stir in the garlic and cook for 30 to 60 seconds, just until fragrant.
- Sprinkle the all-purpose flour, paprika, and black pepper over the softened veggies. Stir constantly for 1 minute to cook off the raw flour taste.
- While stirring, slowly pour in the chicken broth until the mixture is smooth. Add the diced potatoes and stir well.
- Bring to a gentle boil, then reduce to a steady simmer. Cook for 10 to 15 minutes, stirring occasionally, until the potatoes are fork-tender. Note: If the potatoes are overcooked, they will start to break down. Cook according to preference.
- Reduce heat to low. Stir in the heavy cream and warm for 3 to 5 minutes. Do not boil.
- Taste and season with additional salt and pepper as needed.
- Serve warm with chives, cheddar, and bacon bits, if desired. For a cheesy soup, stir in shredded cheddar over low heat until melted.
Notes
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.


















