This creamy ham and potato casserole is one of those cozy, classic dishes I come back to every holiday season. It’s perfect for Christmas dinners, Easter brunch, or anytime you want something warm and comforting on the table. The layers of tender potatoes, savory ham, and creamy Béchamel sauce bake together into a rich, satisfying casserole that always feels a little special, but is easy enough to make any night of the week.

A wooden spoon scooping a serving of ham and potato casserole.

5-Star Review

“I made this tonight with leftover ham from an early Christmas celebration. Turned out great! I did not believe that the potatoes would actually be tender after 45 min but they were—I used Yukon Gold, turned out really nice…ill make again–by popular demand!” Audrey

The secret to this casserole is the creamy Béchamel sauce that ties everything together. I tested it a few different ways, and I much preferred the creamy sauce for the balance of texture and flavor. Instead of a heavy cheese sauce, the béchamel creates a smooth base that thickens as it bakes and coats every layer without turning greasy or separating. Thinly sliced potatoes cook right in the sauce until perfectly tender, while the ham adds a savory, salty contrast that keeps the dish from feeling too rich. This is also a great way to use leftover ham from the holidays. If you add extras like onions or vegetables, it’s best to cook off any excess moisture first so the sauce stays balanced, making this a reliable, well-structured casserole every time.

Tips for Beginners

  • Slice the potatoes evenly for consistent cooking. I always use a sharp knife or mandoline to keep the slices uniform so they cook at the same rate. If some pieces are thicker than others, you’ll end up with a mix of undercooked and overly soft potatoes.
  • Take the time to properly thicken the Béchamel. This is what gives the casserole its creamy, stable texture. Cook the butter and flour together until lightly golden, then slowly whisk in the milk. The sauce should be smooth and thick enough to coat the back of a spoon before layering. If it’s too thin, the casserole can turn watery as it bakes.
  • Let the casserole rest before serving. I always let it sit for at least 10–15 minutes after baking. This helps the sauce set and makes it much easier to slice and serve without everything falling apart.
  • Use just enough cheese for balance. It’s tempting to load it up, but too much cheese can make the casserole greasy and overpower the other flavors. I stick to a moderate amount so it melts into the béchamel and enhances the dish instead of taking over.
Recipe Card

Creamy Ham and Potato Casserole

4.60 from 280 votes
Prep: 30 minutes
Cook: 1 hour
Total: 1 hour 30 minutes
Servings: 8 servings
Author: Becky Hardin
A wooden spoon scooping a serving of ham and potato casserole
This cheesy, creamy casserole is so versatile! Filled with ham and potatoes, you can serve it for breakfast or dinner.
Save this recipe!
Enter your email and we’ll send the recipe directly to you, plus new recipes weekly!

Ingredients 

  • 2 tbsp unsalted butter (¼ stick)
  • 1 yellow onion finely diced
  • 3 tbsp all-purpose flour
  • cups whole milk or half-and-half
  • ½ cup chicken stock or chicken broth
  • ½ tsp fine sea salt
  • ½ tsp ground black pepper
  • ½ tsp garlic powder
  • 2 lbs. russet potatoes peeled and diced small
  • cups diced cooked ham precooked chicken or turkey also works
  • 4 oz. freshly shredded white cheddar cheese (about 1 cup)

Video

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 tbsp 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 tbsp all-purpose flour, 1¼ cups whole milk, ½ cup chicken stock, ½ tsp fine sea salt, ½ tsp ground black pepper, ½ tsp 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 lbs. 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 oz. freshly shredded white cheddar cheese

Equipment

  • 9×13 Baking Pan
Serving: 1servingCalories: 270kcalCarbohydrates: 27gProtein: 15gFat: 12gSaturated Fat: 6gPolyunsaturated Fat: 1gMonounsaturated Fat: 3gTrans Fat: 0.1gCholesterol: 53mgSodium: 689mgPotassium: 684mgFiber: 2gSugar: 3gVitamin A: 294IUVitamin C: 16mgCalcium: 170mgIron: 2mg

Nutrition information is automatically calculated, so should only be used as an approximation.

Did you make this? Leave a comment!

How to Make Creamy Ham and Potato Casserole Step by Step

Ingredients for ham and potato casserole

Gather the ingredients: Gather all the ingredients together. Preheat the oven to 400°F and grease a 9×13-inch baking dish. Use butter or nonstick spray and then set the dish aside.

Sauteed onions in a saucepan.

Sauté the onions: Melt 2 tbsp butter in a medium saucepan and cook one onion over medium heat until it’s translucent.

Cream sauce for ham and potato casserole in a saucepan.

Make the sauce: Sprinkle 3 tbsp all-purpose flour over the cooked onion and stir to combine. Pour in 1¼ cups whole milk, ½ cup chicken stock, ½ tsp fine sea salt, ½ tsp ground black pepper, and ½ tsp garlic powder. Stir often over medium heat, until warmed through and slightly thickened.

Ham and potato casserole after baking before cheese layer.

Assemble and bake: Spread 2 lbs. peeled and diced russet potatoes evenly in the bottom of the prepared baking dish and top with 2½ cups diced ham. Pour the milk mixture over the ham and potatoes. Cover and bake for 40-45 minutes.

Ham and potato casserole topped with cheese.

Melt the cheese: Remove from the oven and sprinkle with 4 oz. shredded white cheddar cheese. Continue baking, uncovered, for 10-15 minutes or until the cheese is completely melted and the potatoes are tender.

Overhead image of ham and potato casserole with a wooden spoon, with a serving scooped out.

Serve: Serve the casserole warm and enjoy.

ham and potato casserole on a white plate

How to Store

To prepare 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.

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.

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.

Serving Suggestions

This dish works just as well for dinner as it does for brunch, which is one of the reasons I make it so often. For an easy dinner, I like to serve it with something simple on the side, like soft dinner rolls to soak up the creamy sauce. If I’m serving it as a side dish, it pairs really well with crispy proteins like air fryer chicken, since the contrast balances out the richness of the casserole. It’s also a great addition to a weekend brunch spread, especially with oven-baked bacon for something salty and crisp alongside it. And if you want to round things out even more, adding a side of eggs or home fries makes it feel like a full, comforting meal.

Recipe Variations

  • Swap the cheeses to change the flavor profile: I like using a mix of cheeses depending on what I have on hand. Sharp cheddar adds bold flavor, while Gruyère or fontina melt more smoothly for a creamier texture. You can also mix in a little Parmesan for a salty, nutty finish. Just make sure to use cheeses that melt well so the sauce stays smooth and not grainy.
  • Add veggies for extra flavor and texture: You can easily mix in vegetables like spinach, mushrooms, or broccoli to make this more balanced. Just be sure to cook off any excess moisture first, especially with high-water vegetables like mushrooms or zucchini. If you skip this step, the extra liquid can make the dish watery instead of creamy.
  • Use pre-cooked potatoes to save time: If you want to speed things up, I’ve had great results using pre-cooked or partially cooked potatoes. You can microwave sliced potatoes for a few minutes or use leftover roasted or boiled potatoes. This cuts down on baking time and helps ensure the potatoes turn out tender every time.

More Cozy Potato Casseroles

  • Scalloped Potatoes and Ham: This is the closest match in both ingredients and method, with layers of thinly sliced potatoes, ham, and a creamy sauce baked until tender and bubbly.
  • Loaded Scalloped Potatoes: A more indulgent take on layered potatoes, made with cheese and bacon for a rich, holiday-style side that pairs perfectly with ham dishes.
  • Crockpot Potato Casserole: A creamy, cheesy potato casserole made with hashbrowns and simple ingredients, ideal for holidays when you want an easy, hands-off side dish.

More Casserole Recipes to try!

Meet Becky Hardin

Becky Hardin is a wife and mother living in Saint Louis Missouri. She founded The Cookie Rookie in 2012 as a creative way to share recipes. Now, she is a trusted resource for easy cooking around the world, being featured in Taste of Home, The Kitchn, ABC’s Home and Family, and more. Here at The Cookie Rookie she is the editor in chief of all recipes and continues to enjoy sharing her passion for cooking for busy families. She has since founded two additional food blogs, Easy Chicken Recipes and Easy Dessert Recipes.

4.60 from 280 votes (260 ratings without comment)
guest
Don't forget to click the ⭐ star rating below




This site uses Akismet to reduce spam. Learn how your comment data is processed.

56 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Michelle Elliott
Michelle Elliott
April 12, 2026 12:09 pm

5 stars
OH! MY! GOD! Is this delicious or what?? a new favourite. Printed out and added to the family binder of loved recipes. This was so 0erfect to use up leftover Easter ham, but we will also be buying ham just to make this recipe. So simple and so darn good!

Leah
Leah
March 13, 2026 10:03 am

How do I make this a freezer meal?

Amy - The Cookie Rookie
Amy - The Cookie Rookie
March 16, 2026 9:53 am
Reply to  Leah

Hi Leah, 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.

Hannah Price
Hannah Price
January 31, 2025 10:42 am

What temp. Is the oven???

Samantha Marceau
Samantha Marceau
January 31, 2025 2:31 pm
Reply to  Hannah Price

Hi Hannah, the oven temp is 400°F. It’s listed in step 1 of the recipe!

Hannah Price
Hannah Price
January 31, 2025 3:29 pm

Thank you. Sorry! I did no t see that. My apologies. I. Making this as we speak. I paroled the potatoes so they would be sure to be cooked thoroughly. I noticed some people we iple were disappointed because their potatoes were not cooked through after an hour and 15.

jonathan Porter
jonathan Porter
September 26, 2024 8:31 am

4 stars
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

Kaylee
Kaylee
June 7, 2024 6:02 pm

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!

Samantha Marceau
Samantha Marceau
June 10, 2024 8:28 am
Reply to  Kaylee

Hi Kaylee, you could certainly try with red onion, but the flavor will be different. Onion powder would also be a good substitute.

Rob Scheurer
Rob Scheurer
August 15, 2023 10:53 am

I meant to like Becky’s reply. As a chef from the south, knowing your roux is very important.

Rob Scheurer
Rob Scheurer
August 15, 2023 10:49 am

5 stars
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.

Samantha Marceau
Samantha Marceau
August 16, 2023 3:24 pm
Reply to  Rob Scheurer

So glad you enjoyed it, Rob!

Samantha Marceau
Samantha Marceau
June 5, 2023 9:39 am

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!

Marge
Marge
March 29, 2023 9:35 pm

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!

Maureen
Maureen
January 6, 2023 5:12 pm

5 stars
I was so excited about this recipe. Was the sauce actually a cream of chicken? I added mushrooms and it was outstanding!

Samantha Marceau
Samantha Marceau
January 9, 2023 9:05 am
Reply to  Maureen

It’s a creamy chicken sauce, but you could probably use cream of chicken as a quick substitute! So glad you enjoyed it!