What the heck is this?
You know those dishes that just scream “Sunday dinner at grandma’s house” but somehow taste even better than you remember? This Cheesy Ham Potato Casserole is exactly that vibe. We’re talking layers of tender, creamy potatoes mixed with chunks of smoky ham and absolutely smothered in a rich, cheesy sauce that gets all golden and bubbly on top. It’s like scalloped potatoes and ham got together and decided to be the most comforting thing ever.
This is the kind of casserole that disappears faster than you can say “seconds, please.” It’s hearty enough to be a main dish but also makes the perfect side for holiday spreads. Plus, it’s basically idiot-proof — layer, pour, bake, and watch people lose their minds over how good it is. And let’s be honest, anything that uses a whole bag of cheese and somehow makes it feel justified is a win in my book.
Why You’ll Love This Recipe
- Pure comfort food gold — like a warm hug in casserole form
- Feeds a crowd — perfect for potlucks, holidays, or meal prep
- Make-ahead friendly — assemble today, bake tomorrow
- Leftover champion — somehow even better the next day
- One-dish wonder — minimal cleanup, maximum satisfaction
- Customizable — swap hams, add veggies, make it yours
The Good Stuff You’ll Need
For the Potato Base:
- 3 lbs Yukon Gold potatoes, peeled and sliced thin (about 1/8 inch)
- 2 lbs cooked ham, diced (leftover holiday ham is perfect)
- 1 large onion, thinly sliced
- 2 tbsp butter
- Salt and pepper to taste
For the Cheese Sauce Dream:
- 4 tbsp butter
- 4 tbsp all-purpose flour
- 2 1/2 cups whole milk
- 1 cup heavy cream
- 2 cups shredded sharp cheddar cheese
- 1 cup shredded Gruyère cheese (or Swiss if you can’t find it)
- 1/2 cup grated Parmesan cheese
- 1 tsp garlic powder
- 1/2 tsp smoked paprika
- 1/4 tsp nutmeg (trust me on this one)
- Salt and white pepper to taste
For the Topping:
- 1 cup shredded sharp cheddar cheese
- 1/2 cup panko breadcrumbs
- 2 tbsp butter, melted
- 2 tbsp fresh chives, chopped
- 1/4 tsp smoked paprika

Let’s Do This
Step 1: Prep Like a Pro
Preheat oven to 350°F.
Grease a 9×13 inch baking dish with butter — don’t be shy about it.
Slice those potatoes as evenly as possible. A mandoline slicer is your friend here, but a sharp knife works too.
Step 2: Sauté the Aromatics
In a large skillet, melt 2 tbsp butter over medium heat.
Add sliced onions and cook until soft and lightly caramelized, about 8-10 minutes.
Season with salt and pepper, then set aside.
Step 3: Make the Cheese Sauce Magic
In a large saucepan, melt 4 tbsp butter over medium heat.
Whisk in flour and cook for 1-2 minutes to make a roux — you don’t want it to brown.
Gradually whisk in milk and cream, going slow to avoid lumps.
Cook, stirring constantly, until the sauce thickens enough to coat the back of a spoon (about 5-7 minutes).
Remove from heat and stir in cheddar, Gruyère, and Parmesan until smooth.
Season with garlic powder, smoked paprika, nutmeg, salt, and white pepper.
Step 4: Assembly Time
Layer half the sliced potatoes in your prepared baking dish, overlapping slightly.
Season with salt and pepper.
Spread half the ham and half the sautéed onions over the potatoes.
Pour half the cheese sauce over everything.
Repeat with remaining potatoes, ham, onions, and cheese sauce.
Step 5: The Topping Situation
Mix the topping ingredients — cheddar, panko, melted butter, and paprika.
Sprinkle evenly over the top of the casserole.
Step 6: Bake to Perfection
Cover tightly with foil and bake for 45 minutes.
Remove foil and bake another 30-40 minutes until the top is golden brown and the potatoes are fork-tender.
Let it rest for 10-15 minutes before serving (I know it’s hard, but trust the process).
Serving Suggestions
Serve alongside a crisp green salad or steamed vegetables to balance all that richness.
Perfect with dinner rolls for soaking up any extra sauce.
Pairs beautifully with a glass of Chardonnay or a light beer.
Switch It Up
Veggie Boost: Add layers of broccoli, spinach, or roasted bell peppers.
Different Meat: Try bacon, sausage, or even leftover turkey.
Cheese Variety: Mix in some smoked gouda or aged white cheddar.
Herb Garden: Add fresh thyme, rosemary, or sage to the cheese sauce.
Spicy Kick: Add diced jalapeños or a dash of hot sauce to the mix.
Make-Ahead Tips
Assemble the entire casserole up to 24 hours ahead — just cover and refrigerate.
Add about 15 minutes to the baking time if going straight from the fridge.
You can even freeze the assembled casserole for up to 3 months — thaw overnight before baking.
Leftovers keep for 4-5 days in the fridge and reheat beautifully in the oven.
Pro Tips for Success
Use a mandoline or sharp knife to get evenly sliced potatoes — this ensures even cooking.
Don’t skip the resting time after baking — it helps everything set up properly.
If the top is browning too fast, tent with foil and continue baking.
Test doneness by inserting a knife through the center — it should slide through easily.

Questions People Actually Ask
Q: Can I use different types of potatoes? A: Yukon Gold are perfect, but russets work too. Avoid waxy potatoes like red potatoes — they don’t break down as nicely.
Q: What if I don’t have heavy cream? A: You can use all milk, but the sauce won’t be quite as rich. Half-and-half is a good middle ground.
Q: Can I make this without ham? A: Absolutely! Try bacon, sausage, or make it vegetarian with mushrooms and extra cheese.
Q: How do I know when it’s done? A: The top should be golden brown and the potatoes should be fork-tender all the way through.
Q: Can I use pre-shredded cheese? A: Fresh is always better, but pre-shredded works in a pinch. Just expect it to be slightly less smooth.
Q: What if my sauce is too thick? A: Add a little more milk or cream until you get the consistency you want — it should coat the potatoes but not be gluey.
Print
Cheesy Ham Potato Casserole
- Total Time: 2 hours
- Yield: 8–10 servings 1x
Description
You know those dishes that just scream “Sunday dinner at grandma’s house” but somehow taste even better than you remember? This Cheesy Ham Potato Casserole is exactly that vibe. We’re talking layers of tender, creamy potatoes mixed with chunks of smoky ham and absolutely smothered in a rich, cheesy sauce that gets all golden and bubbly on top. It’s like scalloped potatoes and ham got together and decided to be the most comforting thing ever.
This is the kind of casserole that disappears faster than you can say “seconds, please.” It’s hearty enough to be a main dish but also makes the perfect side for holiday spreads. Plus, it’s basically idiot-proof — layer, pour, bake, and watch people lose their minds over how good it is. And let’s be honest, anything that uses a whole bag of cheese and somehow makes it feel justified is a win in my book.
Ingredients
For the Potato Base:
- 3 lbs Yukon Gold potatoes, peeled and sliced thin (about 1/8 inch)
- 2 lbs cooked ham, diced (leftover holiday ham is perfect)
- 1 large onion, thinly sliced
- 2 tbsp butter
- Salt and pepper to taste
For the Cheese Sauce Dream:
- 4 tbsp butter
- 4 tbsp all-purpose flour
- 2 1/2 cups whole milk
- 1 cup heavy cream
- 2 cups shredded sharp cheddar cheese
- 1 cup shredded Gruyère cheese (or Swiss if you can’t find it)
- 1/2 cup grated Parmesan cheese
- 1 tsp garlic powder
- 1/2 tsp smoked paprika
- 1/4 tsp nutmeg (trust me on this one)
- Salt and white pepper to taste
For the Topping:
- 1 cup shredded sharp cheddar cheese
- 1/2 cup panko breadcrumbs
- 2 tbsp butter, melted
- 2 tbsp fresh chives, chopped
- 1/4 tsp smoked paprika
Instructions
Preheat oven to 350°F.
Grease a 9×13 inch baking dish with butter — don’t be shy about it.
Slice those potatoes as evenly as possible. A mandoline slicer is your friend here, but a sharp knife works too.
In a large skillet, melt 2 tbsp butter over medium heat.
Add sliced onions and cook until soft and lightly caramelized, about 8-10 minutes.
Season with salt and pepper, then set aside.
In a large saucepan, melt 4 tbsp butter over medium heat.
Whisk in flour and cook for 1-2 minutes to make a roux — you don’t want it to brown.
Gradually whisk in milk and cream, going slow to avoid lumps.
Cook, stirring constantly, until the sauce thickens enough to coat the back of a spoon (about 5-7 minutes).
Remove from heat and stir in cheddar, Gruyère, and Parmesan until smooth.
Season with garlic powder, smoked paprika, nutmeg, salt, and white pepper.
Layer half the sliced potatoes in your prepared baking dish, overlapping slightly.
Season with salt and pepper.
Spread half the ham and half the sautéed onions over the potatoes.
Pour half the cheese sauce over everything.
Repeat with remaining potatoes, ham, onions, and cheese sauce.
Mix the topping ingredients — cheddar, panko, melted butter, and paprika.
Sprinkle evenly over the top of the casserole.
Cover tightly with foil and bake for 45 minutes.
Remove foil and bake another 30-40 minutes until the top is golden brown and the potatoes are fork-tender.
Let it rest for 10-15 minutes before serving (I know it’s hard, but trust the process).
Notes
Serve alongside a crisp green salad or steamed vegetables to balance all that richness.
Perfect with dinner rolls for soaking up any extra sauce.
Pairs beautifully with a glass of Chardonnay or a light beer.
- Prep Time: 30 minutes
- Cook Time: 1 hour 30 minutes
Nutrition
- Calories: ~420 kcal
- Fat: ~25g
- Carbohydrates: ~32g
- Protein: ~18g