Here is my favorite scalloped potatoes and ham casserole, with tender sliced russets layered with cubed ham in a creamy, garlicky sauce that’s perfect for using up leftover holiday ham.
This casserole is what I make whenever I have extra ham sitting in the fridge after Easter or Christmas. My kids actually get excited about leftovers when they know this is what’s for dinner, and I love that it all bakes together in one dish.
Why You’ll Love This Scalloped Potatoes and Ham Casserole
- Complete one-dish meal – This casserole has everything you need in one pan – protein, starch, and vegetables – making dinner planning a breeze and cleanup even easier.
- Perfect for leftovers – Got leftover ham from the holidays? This is the ideal way to use it up instead of letting it go to waste in your fridge.
- Creamy, comforting flavors – The homemade cheese sauce coats tender potato slices and savory ham for that classic comfort food taste everyone craves.
- Simple ingredients – You probably have most of these staples in your kitchen already – no need for a special trip to the grocery store.
- Great for feeding a crowd – This hearty casserole serves plenty of people and can easily be doubled if you’re hosting a family gathering or potluck.
What Kind of Ham Should I Use?
For this scalloped potatoes and ham casserole, you have plenty of options when it comes to the ham. Leftover ham from a holiday dinner works perfectly and is actually a great way to use it up, or you can grab a ham steak from the deli counter and cube it yourself. Pre-diced ham from the packaged meat section is super convenient and saves you prep time. Just avoid honey-baked or heavily glazed hams since the sweet coating can throw off the savory flavor balance of the dish. If you want a smokier taste, go for smoked ham, but regular deli ham will give you a milder, classic flavor that lets the creamy potato sauce shine through.
Options for Substitutions
This casserole is pretty forgiving when it comes to swaps, so here are some options:
- Ham: Leftover holiday ham works great here, but you can also use deli ham, cooked bacon, or even rotisserie chicken. If using deli ham, stack and dice it into cubes for better texture.
- Russet potatoes: Yukon gold potatoes are a solid alternative and actually hold their shape a bit better during baking. You can also use red potatoes, though they’ll give you a slightly different texture.
- Milk: Whole milk gives the creamiest results, but 2% works fine too. You can also use half-and-half for an extra rich sauce, or substitute up to 1 cup of the milk with chicken or vegetable broth if you want a lighter version.
- Butter: You can replace the butter with an equal amount of olive oil or vegetable oil for the roux, though the flavor won’t be quite as rich.
- Onion: Yellow, white, or sweet onions all work here. In a pinch, you can use 1 teaspoon of onion powder mixed into the sauce, though fresh onion adds better texture.
Watch Out for These Mistakes While Baking
The biggest mistake when making scalloped potatoes is slicing your potatoes unevenly or too thick, which leads to some pieces being undercooked while others turn mushy – aim for uniform slices about 1/8 inch thick using a mandoline or sharp knife for consistent results.
Another common error is not cooking your roux (the butter and flour mixture) long enough, which can leave a raw flour taste in your sauce, so make sure it bubbles and cooks for that full minute before adding the milk.
Many people skip layering the sauce between the potato layers, but pouring half the sauce in the middle ensures every bite is creamy and prevents dry spots throughout the casserole.
Finally, resist the urge to skip the covered baking time – those 60 minutes under foil create steam that helps the potatoes cook through evenly, and removing the cover too early can result in a crusty top with crunchy potatoes underneath.
What to Serve With Scalloped Potatoes and Ham Casserole?
Since this casserole is already pretty hearty with the ham and potatoes, I like to keep the sides simple and fresh. A crisp green salad with a light vinaigrette helps cut through all that creamy richness and adds some brightness to your plate. Steamed green beans or roasted broccoli are also great choices if you want something warm on the side. If you’re feeding a crowd, some dinner rolls or biscuits are perfect for soaking up any extra sauce, and they make the meal feel even more homey and filling.
Storage Instructions
Store: Leftover scalloped potatoes and ham will keep in the fridge for 3-4 days in an airtight container or covered with foil. The potatoes might absorb some of the sauce as they sit, but they’ll still taste great reheated for an easy weeknight dinner.
Freeze: You can freeze this casserole for up to 2 months, though the texture of the potatoes may change slightly when thawed. I recommend freezing it in individual portions so you can grab just what you need. Let it cool completely before wrapping tightly in plastic wrap and then foil.
Reheat: Warm it up in the oven at 350°F covered with foil until heated through, about 20-25 minutes from the fridge. You can also microwave individual portions for 2-3 minutes, stirring halfway through. Add a splash of milk if it seems a bit dry after reheating.
| Preparation Time | 20-30 minutes |
| Cooking Time | 80-90 minutes |
| Total Time | 100-120 minutes |
| Level of Difficulty | Medium |
| Servings | 8 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 2600-2900
- Protein: 100-120 g
- Fat: 120-135 g
- Carbohydrates: 270-300 g
Ingredients
For the filling:
- 20 oz ham (diced into 1/2-inch cubes)
- 8 cups russet potatoes (peeled and sliced into 1/8-inch rounds)
- 1 large onion
- 5 tbsp butter
For the cream sauce:
- 4 tbsp butter (I prefer Kerrygold unsalted butter for this)
- 1/4 cup flour (I always use King Arthur all-purpose flour)
- 3 cups milk
- 1 1/4 tsp salt
- 3/4 tsp pepper
- 1/2 tsp garlic powder
- 1/4 tsp smoked paprika
Step 1: Prepare the Mise en Place
- 20 oz ham
- 8 cups russet potatoes
- 1 large onion
Peel and slice the russet potatoes into 1/8-inch rounds, placing them in a bowl of cold water to prevent browning—this is crucial for both appearance and texture.
Dice the ham into 1/2-inch cubes and set aside.
Slice the onion into thin rounds.
Having everything prepped and ready will make the assembly process smooth and prevent the potatoes from oxidizing while you work on the sauce.
Step 2: Build the Béchamel Sauce Base
- 4 tbsp butter
- 1/4 cup flour
- 3 cups milk
- 1 1/4 tsp salt
- 3/4 tsp pepper
- 1/2 tsp garlic powder
- 1/4 tsp smoked paprika
Melt 4 tablespoons of butter in a medium saucepan over medium heat.
Once melted and foaming, whisk in the flour to create a roux, stirring constantly for about 1-2 minutes until it turns light golden and bubbles slightly—this cooks out the raw flour taste.
Gradually whisk in the milk while stirring to avoid lumps, then add the salt, pepper, garlic powder, and smoked paprika.
Continue cooking and stirring for 3-4 minutes until the sauce thickens enough to coat the back of a spoon, then remove from heat.
I like to add the smoked paprika to the sauce rather than as a garnish because it infuses the entire dish with a subtle depth that complements the ham beautifully.
Step 3: Assemble the Casserole in Layers
- potato and ham mixture
- béchamel sauce from Step 2
- 5 tbsp butter
Preheat your oven to 375°F.
Lightly oil a 9×13-inch baking dish or similar size.
Drain the sliced potatoes thoroughly and pat them dry with paper towels—removing excess moisture helps them cook evenly rather than steaming.
In a large bowl, combine the drained potatoes, sliced onion, and diced ham, tossing gently to distribute evenly.
Layer half of the potato mixture into the prepared dish, spreading it in an even layer.
Pour half of the béchamel sauce from Step 2 over the potatoes, then repeat with the remaining potato mixture and sauce.
Dot the top with the remaining 5 tablespoons of butter, cutting it into small pats and distributing them evenly—this creates a golden, flavorful crust as it melts during baking.
Step 4: Bake Covered Until Potatoes Are Tender
- assembled casserole from Step 3
Cover the casserole tightly with aluminum foil and place it in the preheated 375°F oven.
Bake for 60 minutes—the foil traps steam and helps cook the potatoes through while keeping the sauce creamy.
The potatoes are done when they’re fork-tender and a knife slides through easily without resistance.
Step 5: Finish with a Golden Crust
- casserole from Step 4
Carefully remove the foil from the casserole and return it to the oven, uncovered.
Bake for an additional 20 minutes until the top turns golden brown and the edges are bubbling—this final uncovered baking allows the butter on top to brown and creates that desirable crispy, golden top layer.
Let the casserole rest for 5 minutes before serving so the sauce sets slightly and is less likely to run on the plate.

Rich Scalloped Potatoes and Ham Casserole
Ingredients
For the filling::
- 20 oz ham (diced into 1/2-inch cubes)
- 8 cups russet potatoes (peeled and sliced into 1/8-inch rounds)
- 1 large onion
- 5 tbsp butter
For the cream sauce::
- 4 tbsp butter (I prefer Kerrygold unsalted butter for this)
- 1/4 cup flour (I always use King Arthur all-purpose flour)
- 3 cups milk
- 1 1/4 tsp salt
- 3/4 tsp pepper
- 1/2 tsp garlic powder
- 1/4 tsp smoked paprika
Instructions
- Peel and slice the russet potatoes into 1/8-inch rounds, placing them in a bowl of cold water to prevent browning—this is crucial for both appearance and texture. Dice the ham into 1/2-inch cubes and set aside. Slice the onion into thin rounds. Having everything prepped and ready will make the assembly process smooth and prevent the potatoes from oxidizing while you work on the sauce.
- Melt 4 tablespoons of butter in a medium saucepan over medium heat. Once melted and foaming, whisk in the flour to create a roux, stirring constantly for about 1-2 minutes until it turns light golden and bubbles slightly—this cooks out the raw flour taste. Gradually whisk in the milk while stirring to avoid lumps, then add the salt, pepper, garlic powder, and smoked paprika. Continue cooking and stirring for 3-4 minutes until the sauce thickens enough to coat the back of a spoon, then remove from heat. I like to add the smoked paprika to the sauce rather than as a garnish because it infuses the entire dish with a subtle depth that complements the ham beautifully.
- Preheat your oven to 375°F. Lightly oil a 9x13-inch baking dish or similar size. Drain the sliced potatoes thoroughly and pat them dry with paper towels—removing excess moisture helps them cook evenly rather than steaming. In a large bowl, combine the drained potatoes, sliced onion, and diced ham, tossing gently to distribute evenly. Layer half of the potato mixture into the prepared dish, spreading it in an even layer. Pour half of the béchamel sauce from Step 2 over the potatoes, then repeat with the remaining potato mixture and sauce. Dot the top with the remaining 5 tablespoons of butter, cutting it into small pats and distributing them evenly—this creates a golden, flavorful crust as it melts during baking.
- Cover the casserole tightly with aluminum foil and place it in the preheated 375°F oven. Bake for 60 minutes—the foil traps steam and helps cook the potatoes through while keeping the sauce creamy. The potatoes are done when they're fork-tender and a knife slides through easily without resistance.
- Carefully remove the foil from the casserole and return it to the oven, uncovered. Bake for an additional 20 minutes until the top turns golden brown and the edges are bubbling—this final uncovered baking allows the butter on top to brown and creates that desirable crispy, golden top layer. Let the casserole rest for 5 minutes before serving so the sauce sets slightly and is less likely to run on the plate.







