When I need to use leftover ham, this Ham and Potato Casserole recipe is cheesy, creamy, and super delicious! I make this dish throughout the year, from weeknight dinners to holiday feasts, or even for a hearty breakfast. My kids gobble this up every time it hits the table.
This post may include affiliate links that earn us a small commission from your purchases at no extra cost to you.
What’s in This Ham and Potato Casserole Recipe?
The ingredients in this casserole are ones that my kids love eating every time. I love when a recipe is a hit for the entire family.
- Unsalted Butter: Helps cook the onions and combines with the flour to thicken the casserole.
- Yellow Onion: Adds an earthy and sweet flavor.
- All-Purpose Flour: Reacts with the butter to create a thick sauce.
- Whole Milk: Thickens and enriches the casserole.
- Chicken Stock: Adds moisture to the casserole. You can use chicken broth if you prefer.
- Salt + Pepper: Enhance the overall flavor of the casserole.
- Garlic Powder: Adds an earthy, umami flavor to the casserole.
- Russet Potatoes: These starchy potatoes are ideal for baking.
- Cooked Ham: This recipe is perfect to use up leftover holiday ham!
- White Cheddar Cheese: Freshly shredded cheese melts better than the pre-shredded kind.
Notes from the Test Kitchen
To prepare this casserole ahead of time, I follow the recipe through step 4, then cover and refrigerate overnight. The next day, I let the casserole warm up to room temperature while the oven preheats, then proceed with the recipe as written from step 5. I sometimes need to add a few extra minutes to the final bake time if the casserole is still cold when it goes into the oven.
Variations
Feel free to make simple ingredient swaps or add a few more things to this ham casserole recipe. Here are some easy swaps I have loved.
- Spicy: I mix in chili powder and/or red pepper flakes with the other spices. I sprinkle pepper jack cheese on top. I’ve even mixed in green chiles to really spice things up.
- Protein Swap: I use pre-cooked turkey or chicken instead of ham. Easy and delish!
- Load it Up: I mix in bacon crumbles, sliced jalapeños, broccoli bits, and peppers. It would also taste great served with a dollop of sour cream on top! I want you to feel free to make it your own.
Serving Suggestions
This dish can be served as a simple dinner, a side dish, or even for breakfast or brunch. It’s truly one of the most versatile recipes.
- For dinner, just add some dinner rolls or cornbread.
- As a side dish, this goes well with anything from air-fried chicken to breaded pork chops.
- For breakfast, cook up some oven-baked bacon, home fries, and eggs in any style.
Ham and Potato Casserole Recipe
Equipment
Ingredients
- 2 tablespoons unsalted butter (¼ stick)
- 1 yellow onion finely diced
- 3 tablespoons all-purpose flour
- 1¼ cups whole milk or half-and-half
- ½ cup chicken stock or chicken broth
- ½ teaspoon fine sea salt
- ½ teaspoon ground black pepper
- ½ teaspoon garlic powder
- 2 pounds russet potatoes peeled and diced small
- 2½ cups diced cooked ham
- 4 ounces freshly shredded white cheddar cheese (about 1 cup)
Instructions
- Preheat the oven to 400°F. Grease a 9×13 inch baking dish with butter or non-stick cooking spray. Set aside.
- In a medium saucepan melt the butter. Add the diced onion and cook over medium heat until translucent.2 tablespoons unsalted butter, 1 yellow onion
- Sprinkle the flour over the cooked onion and stir to combine. Add in the milk, chicken stock, sea salt, black pepper, and garlic powder. Continue to heat, stirring often, until warmed through and slightly thickened.3 tablespoons all-purpose flour, 1¼ cups whole milk, ½ cup chicken stock, ½ teaspoon fine sea salt, ½ teaspoon ground black pepper, ½ teaspoon garlic powder
- Spread the potatoes evenly in the bottom of the prepared baking dish and top with the diced ham. Pour the milk mixture over the ham and potatoes.2 pounds russet potatoes, 2½ cups diced cooked ham
- Cover and bake for 40-45 minutes.
- Remove from oven and top with shredded cheese. Continue to bake, uncovered for an additional 10-15 minutes or until the cheese is completely melted and potatoes are tender.4 ounces freshly shredded white cheddar cheese
Video
Becky’s Tips
- Make Ahead Instructions:
- Follow the recipe through step 4.
- Cover and refrigerate overnight.
- When you are ready to bake, remove the casserole from the fridge, and let it warm up at room temperature while the oven preheats.
- Proceed with the recipe as written, from step 5.
- Note: You may need to add a few extra minutes of baking time if your casserole is still cold when it goes in the oven.
Nutrition information is automatically calculated, so should only be used as an approximation.
How to Make Ham and Potato Casserole Step by Step
Sauté the Onions: Preheat the oven to 400°F. Grease a 9×13-inch baking dish with butter or nonstick spray and set aside. In a medium saucepan melt 2 tablespoons of unsalted butter. Add 1 diced yellow onion and cook over medium heat until translucent.
Make the Sauce: Sprinkle 3 tablespoons of all-purpose flour over the cooked onion and stir to combine. Add in 1¼ cups of whole milk, ½ cup of chicken stock, ½ teaspoon of fine sea salt, ½ teaspoon of ground black pepper, and ½ teaspoon of garlic powder. Continue to heat, stirring often, until warmed through and slightly thickened.
Assemble and Bake: Spread 2 pounds of peeled and diced russet potatoes evenly in the bottom of the prepared baking dish and top with 2½ cups of diced ham. Pour the milk mixture over the ham and potatoes. Cover and bake for 40-45 minutes.
Melt the Cheese: Remove from oven and top with 4 ounces of shredded white cheddar cheese. Continue to bake, uncovered for an additional 10-15 minutes or until the cheese is completely melted and the potatoes are tender.
How to Store and Reheat
Store leftover ham and potato casserole in an airtight container, or cover the casserole dish with plastic wrap. Keep in the refrigerator up to 4 days.
To reheat any leftovers, place an individual portion in a microwave-safe dish. Heat on 50% power for 1-2 minutes at a time until heated through. Stir well at least once during heating.
To reheat a larger portion, warm the casserole in the oven at 350°F for about 20 minutes or until warmed through.
How to Freeze
Let the casserole cool to room temperature, then cover the dish tightly with plastic wrap and/or aluminum foil. You can also scoop it into a freezer-safe bag. Freeze up to 3 months, then thaw in the fridge before reheating.
Make sure you are using cooked ham in this recipe. Use leftover ham, pre-cooked ham, or cook your own ham for this casserole. You can easily find cooked hams at the grocery store or deli.
There’s no need to par-boil the potatoes, as they’ll cook through fully in the oven.
Turned out very good. All my kids liked it. So that’s a win. I made it exactly as posted except the cheese. I had about half a cup of weight cheddar and used some Colby jack as well
I haven’t had a chance to make this specific recipe but I’ve always loved a good ham and potato casserole! If I managed to forget to buy a yellow onion could I substitute it with a red one? I was considering making it without the onion and just adding onion powder to at least have that onion flavor. What would you suggest? I could always go back to the store but I’m feeling a bit lazy!
Hi Kaylee, you could certainly try with red onion, but the flavor will be different. Onion powder would also be a good substitute.
I meant to like Becky’s reply. As a chef from the south, knowing your roux is very important.
I made this recipe for a breakfast change at our small farm. I used shredded Mexican style cheese blend because it was what I had on hand. It was served with scrambled eggs. I would’ve taken a photo, but , there was nothing left! Enough said.
So glad you enjoyed it, Rob!
Hi Laura, we’re sorry to hear this recipe didn’t work out for you! I’m not sure how your sauce turned out so thick, as there’s quite a bit of liquid added. I am wondering if perhaps you cooked the sauce for a bit too long. It’s important to only cook it until it is slightly thickened, not paste-like!
This recipe was so amazing and easy, I subbed the ham for farmer sausage, added a touch of nutmeg and it was absolutely perfect. Loved that it didn’t have any condensed soup! My kids loved it. Going into the rotation forsure!
I was so excited about this recipe. Was the sauce actually a cream of chicken? I added mushrooms and it was outstanding!
It’s a creamy chicken sauce, but you could probably use cream of chicken as a quick substitute! So glad you enjoyed it!
Wow, first one of your recipes I’ve tried. Both of my picky eaters loved it. The only change was to par boil my diced potatoes for a few minutes. I did add bacon bits before pouring the sauce over, I was hoping to have enough leftover for work lunches, but the family polished it off that night
So easy and very good. Hardly anything left for leftovers and it’s just the two of us.
Super sad. The sauce tastes great but even with the potatoes cut small it have been in the oven for over an hour and a half and most of the potatoes as still raw. Not sure what is going on here.
We would recommend checking your oven temperature with a thermometer! Oven temperature can vary by quite a lot!
Same with me. Ended up baking 1/2 hour longer but turned out real good overall.