Cheesy Ham and Potato Casserole
Cheesy Ham and Potato Casserole (The Ultimate Comfort Food Bake)
There’s nothing quite like a bubbling, golden casserole fresh out of the oven, especially when it’s layered with tender potatoes, savory diced ham, and a rich, three-cheese sauce made from scratch. This Cheesy Ham and Potato Casserole is the definition of comfort food — creamy, cheesy, hearty, and perfect for feeding a crowd. Whether you’re using up leftover holiday ham or simply craving a warm, satisfying bake, this dish delivers every time.
Made with a homemade cheese sauce built on a classic butter-and-flour roux, layered with thinly sliced potatoes and diced ham, and topped with a golden, bubbly layer of melted cheese, this casserole is the kind of dish that disappears fast at potlucks, family dinners, and holiday tables alike. Below, you’ll find the complete recipe along with helpful tips, ingredient notes, variations, storage instructions, and answers to frequently asked questions.
Why You’ll Love This Recipe
This cheesy potato and ham bake has earned its place as a go-to comfort food recipe for good reason:
- A rich, homemade cheese sauce. Unlike casseroles that rely on canned soup, this recipe builds its sauce from scratch using a butter-and-flour roux, milk, heavy cream, and three types of cheese for maximum flavor and creaminess.
- The perfect way to use leftover ham. This is one of the best recipes for transforming holiday ham leftovers into an entirely new, delicious meal.
- Layered for maximum flavor. By layering the potatoes, ham, and cheese sauce three times, every single bite is packed with flavor from top to bottom.
- Great for feeding a crowd. Made in a 9×13-inch baking dish, this recipe yields generous portions, making it ideal for potlucks, holidays, and family gatherings.
- Make-ahead friendly. This casserole can be assembled ahead of time and baked when you’re ready, making it a convenient option for busy days or holiday meal planning.
- Freezer-friendly leftovers. It stores and reheats beautifully, making it a great option for meal prep throughout the week.
Ingredients You’ll Need

This casserole comes together with three main components: sliced potatoes, diced ham, and a rich homemade cheese sauce. Here’s everything required to make it.
For the Casserole
- 4 pounds potatoes (Yukon Gold or russet), thinly sliced
- 2 cups diced cooked ham
- 1 small onion, diced
For the Cheese Sauce
- 3 tablespoons unsalted butter
- 3 tablespoons all-purpose flour
- 2 cups whole milk
- 1 cup heavy cream
- 1½ cups shredded sharp cheddar cheese
- 1 cup shredded mozzarella cheese
- ½ cup grated Parmesan cheese
- 2 garlic cloves, minced
- 1 teaspoon Dijon mustard
- 1 teaspoon Italian seasoning
- ½ teaspoon paprika
- ½ teaspoon salt
- ¼ teaspoon black pepper
For the Topping
- ½ cup shredded cheddar cheese
- ¼ cup shredded mozzarella
- 2 tablespoons grated Parmesan
- 1 tablespoon chopped fresh parsley
Each component plays an important role in the final dish. The potatoes form the hearty base, the diced ham adds smoky, savory flavor throughout, and the layered cheese sauce ties everything together into one rich, comforting bake.
Recipe Snapshot
- Prep Time: approximately 20–25 minutes
- Cook Time: 55–65 minutes
- Total Time: approximately 1 hour 20 minutes
- Servings: 8–10
Step-by-Step Instructions
Step 1: Prepare the Potatoes
Preheat your oven to 375°F (190°C) and lightly grease a 9×13-inch baking dish.
Wash the potatoes thoroughly and slice them thinly, aiming for slices about ⅛-inch thick. Slicing them evenly is important, as it ensures the potatoes cook at the same rate throughout the casserole. A mandoline slicer can be especially helpful for achieving consistent, thin slices quickly.
Step 2: Make the Cheese Sauce
In a medium saucepan, melt the butter over medium heat. Add the diced onion and cook for about 4 to 5 minutes, stirring occasionally, until softened and translucent.
Add the minced garlic and cook for an additional 30 seconds, just until fragrant. Be careful not to let the garlic burn, as it can turn bitter quickly.
Whisk in the flour and cook for about 1 minute, stirring constantly. This step cooks off the raw flour taste and forms the base of your roux.
Gradually whisk in the milk and heavy cream, adding them slowly to avoid lumps. Continue cooking for 4 to 6 minutes, stirring frequently, until the sauce thickens enough to coat the back of a spoon.
Reduce the heat to low, then stir in the Dijon mustard, Italian seasoning, paprika, salt, and black pepper. These seasonings add depth and a subtle tang that balances the richness of the cheese.
Add the cheddar, mozzarella, and Parmesan cheeses, stirring continuously until the sauce is completely smooth and the cheese has fully melted into the mixture.
Step 3: Layer the Casserole
In your prepared baking dish, arrange one-third of the sliced potatoes in an even layer. Sprinkle one-third of the diced ham evenly over the potatoes, then pour one-third of the cheese sauce over the top, spreading it gently to cover the layer.
Repeat this layering process two more times — potatoes, ham, and cheese sauce — finishing with the remaining cheese sauce poured evenly over the top layer.
Step 4: Add the Topping
Sprinkle the remaining cheddar, mozzarella, and Parmesan cheese evenly over the top of the casserole. Cover the dish tightly with aluminum foil to trap steam, which helps the potatoes cook through evenly.
Step 5: Bake
Bake the casserole covered for 40 minutes. After 40 minutes, remove the foil and continue baking uncovered for an additional 15 to 25 minutes, or until the potatoes are completely tender when pierced with a fork and the cheese on top is golden and bubbling.
For an extra golden, slightly crisped top, broil the casserole for 1 to 2 minutes at the end, watching closely to prevent burning.
Step 6: Rest and Serve
Once out of the oven, let the casserole rest for 10 to 15 minutes before slicing and serving. This resting period allows the creamy sauce to set slightly, making it easier to serve neat portions. Garnish with freshly chopped parsley and serve warm.
Tips for the Best Cheesy Ham and Potato Casserole
- Slice potatoes evenly. Uneven slices lead to uneven cooking, with some pieces remaining firm while others turn mushy. Aim for consistent ⅛-inch slices throughout.
- Choose the right potato. Yukon Gold potatoes create an especially creamy, buttery texture, while russets offer a slightly starchier, fluffier bite. Both work well in this recipe.
- Use leftover holiday ham. This casserole is one of the easiest and most delicious ways to repurpose leftover ham from Easter, Thanksgiving, or Christmas dinners.
- Don’t skip covering the dish. Baking the casserole covered for the first portion of cooking traps steam, which is essential for fully cooking the potatoes through.
- Let it rest before serving. Cutting into the casserole immediately after baking can cause the sauce to run. Resting allows it to thicken slightly for cleaner slices.
- Grate your own cheese when possible. Freshly grated cheese melts more smoothly than pre-shredded bags, which often contain anti-caking agents that can make the sauce slightly grainy.
Serving Suggestions
This rich, hearty casserole pairs wonderfully with lighter, fresher sides to help balance the meal:
- A simple green salad with a light vinaigrette to cut through the richness.
- Steamed or roasted green beans for a classic, comforting pairing.
- Roasted asparagus for an elegant, slightly charred contrast.
- Crusty bread or dinner rolls to round out the meal.
- Applesauce for a touch of sweetness that pairs beautifully with the salty ham and cheese.
- A light fruit salad to add freshness alongside the rich, creamy casserole.
Variations to Try
Once you’ve made the classic version, consider these tasty twists:
- Bacon and ham combo: Add crispy crumbled bacon along with the diced ham for extra smoky flavor and crunch.
- Spicy version: Stir a pinch of cayenne pepper or a few dashes of hot sauce into the cheese sauce for a subtle kick.
- Vegetable-loaded casserole: Add steamed broccoli florets or sautéed mushrooms between the layers for extra nutrition and texture.
- Different cheese blend: Swap in Gruyère or smoked gouda for part of the cheddar for a more complex, smoky flavor profile.
- Sweet potato swap: Replace half the regular potatoes with thinly sliced sweet potatoes for a slightly sweeter, more colorful twist.
- Breakfast casserole version: Add a few beaten eggs to the layers and bake as a hearty breakfast or brunch casserole.
How to Store and Reheat Leftovers
This casserole holds up beautifully as leftovers, making it a great option for meal prep or planned second-day meals.
Refrigerator: Store leftovers in an airtight container in the refrigerator for up to 4 days.
Freezer: While the texture of the potatoes may soften slightly after freezing, this casserole can be frozen for up to 2 months. For best results, freeze in individual portions for easy reheating.
To reheat: Reheat individual portions in the microwave in short intervals until warmed through, or reheat larger portions in a covered baking dish in a 350°F (175°C) oven until heated through, about 20 to 25 minutes. Adding a splash of milk before reheating can help restore the sauce’s creamy texture.
Frequently Asked Questions
Can I make this casserole ahead of time? Yes. You can assemble the entire casserole up to a day in advance, cover tightly, and refrigerate until you’re ready to bake. You may need to add a few extra minutes to the covered baking time since the dish will be starting from cold.
What type of ham works best in this recipe? Diced leftover baked ham works wonderfully, but store-bought deli ham or a pre-cooked ham steak, diced into small pieces, also works well if you don’t have leftovers on hand.
Can I use pre-shredded cheese instead of block cheese? Yes, though freshly grated cheese from a block tends to melt more smoothly into the sauce. Pre-shredded cheese contains anti-caking agents that can occasionally make the sauce slightly less silky.
Why are my potatoes still firm after baking? This usually happens if the potato slices were cut too thick or if the casserole wasn’t covered during the first part of baking. Thin, even slices and covering the dish with foil are both essential for properly tender potatoes.
Can I make this recipe without ham for a vegetarian version? Yes, simply omit the ham. You can add sautéed mushrooms or extra vegetables in its place for added texture and flavor.
Is it necessary to make a roux for the cheese sauce? The roux (butter and flour mixture) is what gives the sauce its thick, creamy consistency and helps it cling to the potatoes and ham rather than turning watery. It’s a key step for achieving the right texture.
Can I double this recipe? Yes, though you’ll need a larger baking dish or two separate 9×13-inch dishes to accommodate the increased volume without overcrowding the layers.
Final Thoughts
This Cheesy Ham and Potato Casserole is everything comfort food should be: rich, creamy, hearty, and endlessly satisfying. With layers of tender potatoes, savory ham, and a homemade three-cheese sauce, this dish is guaranteed to be a hit at potlucks, holiday dinners, or any night you’re craving something warm and indulgent. It’s also one of the best ways to give new life to leftover holiday ham, turning it into a completely new, crave-worthy meal.
Make it once, and this cheesy, golden-topped casserole is sure to earn a permanent spot in your regular dinner rotation.