Cheesy Ham Potato Casserole (Ready in About an Hour)

This casserole started as a way to use up leftover holiday ham, and it ended up as one of the most-requested dinners in my house. Layers of tender potato and smoky ham baked in a sharp cheddar sauce that thickens as it cooks into something rich and deeply satisfying.

The sauce is a simple roux-based cheese sauce that takes about ten minutes on the stovetop. It sounds fancier than it is, and it tastes considerably better than anything from a can. If you have ham in the fridge and potatoes on the counter, you already have most of what you need.

This is the kind of dinner that holds well, reheats well, and feeds a crowd without much effort. It is also a perfect destination for leftover spiral ham after a holiday.

What goes into this bake

The ingredient list is short and rewards quality over quantity. Yukon Gold potatoes hold their shape better than russets through the long bake and have a naturally buttery flavor that works well here. For the ham, a thick-cut deli ham or leftover holiday ham both work well. Very thin sliced luncheon meat tends to turn papery in the oven.

Raw ingredients for cheesy ham potato casserole including Yukon Gold potatoes, ham, and cheddar on marble
  • Yukon Gold potatoes. Their waxy texture holds up through the long bake so the layers stay distinct rather than turning to mush.
  • Cooked ham. Savory, smoky, and already seasoned, it does most of the flavor work without any extra effort. Leftover holiday ham is ideal here.
  • Yellow onion. Softened in butter before layering, it adds a gentle sweetness that rounds out the richness of the sauce.
  • Sharp cheddar cheese. The backbone of the sauce. Freshly shredded from a block melts smoother and tastes stronger than pre-shredded bags.
  • Butter and flour. The roux base that turns milk and broth into a sauce thick enough to coat every layer.
  • Whole milk and chicken broth. Milk brings richness and broth keeps the sauce from getting too heavy, adding a quiet savory depth.
  • Dry mustard and paprika. Small quantities, but they sharpen the cheese flavor and add a subtle warmth without any heat.

How to build and bake it

  1. Preheat and prep. Heat the oven to 375°F (190°C) and butter a 9×13 inch (23×33 cm) baking dish. Peel and slice the potatoes about 1/4 inch (6 mm) thick, then keep them in cold water until you are ready to layer so they do not brown.
  2. Soften the onion and garlic. Melt 1 tablespoon of butter in a skillet over medium heat. Cook the diced onion for 5 to 6 minutes until soft and lightly golden at the edges, then add the garlic and cook for 30 seconds more. Set aside.
  3. Make the cheese sauce. In a medium saucepan, melt the remaining 2 tablespoons of butter over medium heat. Whisk in the flour and cook for 1 to 2 minutes until the paste turns slightly golden and smells faintly nutty. Gradually pour in the milk and broth, whisking constantly. Cook, stirring, until the sauce thickens enough to coat the back of a spoon, about 5 minutes. Remove from the heat and stir in 1½ cups of cheddar, the mustard powder, and paprika. Season with salt and pepper.
  4. Build the first layer. Drain and pat the potato slices dry. Spread half the potatoes in the dish, season lightly with salt and pepper, then scatter half the ham and all of the cooked onion and garlic on top. Pour half the cheese sauce over evenly.
  5. Add the second layer. Layer the remaining potatoes on top, season again, add the rest of the ham, and pour the remaining sauce over everything. Scatter the reserved ½ cup of cheddar across the top.
  6. Bake covered. Cover tightly with foil and bake for 45 minutes. The trapped steam finishes cooking the potatoes through without drying out the sauce.
  7. Brown the top. Remove the foil and bake for another 15 to 20 minutes until the top is golden brown and bubbling. A thin knife should slide through the potato layers without resistance.
  8. Rest before serving. Let the casserole sit for 10 minutes. The sauce firms up slightly and every scoop holds together cleanly.
Four cooking steps for cheesy ham potato casserole from layering to golden baked finish

The one step that makes the sauce

The most important move in this recipe is cooking the roux long enough before adding any liquid. You want the butter-flour paste to go a minute or two past when it looks done, until it turns a shade darker and smells faintly of toasted bread. Raw flour in a sauce tastes starchy and flat, and no amount of cheese covers that.

Add the liquid slowly and whisk constantly. Rushing this step is how lumps form. If the sauce does lump despite this, strain it through a fine mesh sieve before pouring it over the potatoes. Once the cheese goes in, keep the heat low. High heat after the cheese is added can break the sauce and make it greasy. The USDA FSIS ham food safety guidance recommends reheating cooked ham to 140°F (60°C) internally, a temperature the casserole easily reaches during baking.

Swaps that still work well

No chicken broth on hand? A light vegetable broth or just more whole milk works fine. For a richer version, swap ½ cup of the milk for full-fat sour cream and stir it into the finished sauce off the heat. It adds a faint tang that cuts through the richness without changing the texture of the dish.

Russet potatoes work if that is what you have, but they absorb more of the sauce during the bake and the layers get softer. Red potatoes hold their texture similarly to Yukon Golds. If you want to skip the roux entirely, you can substitute one can of condensed cream of mushroom soup thinned with ½ cup of milk for the homemade sauce, though the flavor will be milder.

The ham can be replaced with cooked crumbled bacon or diced smoked turkey. Keep the total quantity close to the original so the potato-to-protein ratio stays balanced across the layers.

How to store, reheat, and freeze

Leftovers keep in the fridge for up to four days, covered tightly. Reheat portions in a low oven at 325°F (160°C) for about 20 minutes with a small splash of milk stirred in to loosen the sauce. According to foodsafety.gov guidelines, cooked leftovers should reach 165°F (74°C) before serving.

This casserole freezes well. Cool it completely, wrap the dish in two layers of foil, and freeze for up to two months. Thaw overnight in the fridge before reheating. The potato texture softens slightly after freezing but the flavor holds.

What to serve alongside it

This casserole is a full meal on its own but a simple green salad keeps things from feeling too heavy. A lightly dressed arugula salad or some roasted green beans give the plate a bit of contrast and freshness. A small dish of Dijon mustard on the side is a surprisingly good pairing with the ham and cheese.

For a brunch table, this works well next to scrambled eggs and fresh fruit. It holds warm in a low oven at 200°F (95°C) for up to an hour, which makes it easy to time around other dishes when you are feeding a crowd.

Close low-angle view of cheesy ham potato casserole with golden crust and creamy layers

FAQs

Can I use frozen hash browns instead of slicing fresh potatoes?

Yes, and it saves a good amount of prep time. Use about 30 oz (850 g) of frozen diced or shredded hash browns, thawed and patted dry before layering. They may need 5 to 10 extra minutes in the oven since frozen potato tends to hold more moisture. The texture will be slightly softer than sliced fresh potato but the flavor is still very good.

What is the best cheese for this casserole?

Sharp or extra-sharp cheddar gives the most noticeable flavor. Mild cheddar works but the sauce can taste a bit flat by comparison. You can also blend in some Gruyere for a nuttier note, or a handful of Monterey Jack to stretch the sauce further. Buy a block and shred it yourself. Pre-shredded bags contain an anti-caking starch coating that makes the sauce grainy instead of smooth.

Can I assemble this casserole the day before I bake it?

Yes. Assemble everything through the final cheese topping, cover tightly with foil, and refrigerate overnight. When you are ready to bake, pull the dish out 30 minutes ahead to take the chill off. Bake as directed but add 10 to 15 extra minutes to the covered bake time if it goes into the oven cold. The flavors actually develop nicely overnight.

How do I store and reheat leftovers?

Cover the dish tightly or transfer portions to an airtight container and refrigerate for up to four days. Reheat in a 325°F (160°C) oven for about 20 minutes with a small splash of milk stirred in to revive the sauce. The microwave works for individual portions on medium power for 2 to 3 minutes, though the oven keeps the top from getting rubbery. The USDA recommends reheating cooked dishes to 165°F (74°C) before serving.

Can I make this casserole gluten-free?

Yes. Swap the all-purpose flour for a 1:1 gluten-free flour blend, or use 2 tablespoons of cornstarch to thicken the sauce instead. If you use cornstarch, whisk it into the cold milk before adding it to the melted butter so it dissolves cleanly. Also check that your ham and chicken broth are labeled gluten-free, since some processed meats and broths contain hidden gluten.

What vegetables can I add?

Diced broccoli florets are the most common addition and hold up well through the long bake. Scatter them between the potato layers along with the ham. Frozen peas, diced bell peppers, or a handful of corn kernels also work. Stick to vegetables that can survive an hour of heat. Leafy greens like spinach will wilt to almost nothing by the time the potatoes are done.

How do I know when the casserole is fully cooked?

A thin knife or skewer should slide into the potato layers without any resistance. The top should be golden brown and the sauce should be visibly bubbling around the edges rather than looking watery. If the cheese top is browning faster than the potatoes are cooking through, tent it loosely with foil and give the dish another 10 minutes before checking again.

References

Sources cited in this recipe.