Easy Au Gratin Potatoes and Ham is creamy, cheesy comfort food made with tender potatoes, savory ham, and a rich homemade sauce baked until golden and bubbly.
I usually make this when I’ve got leftover ham sitting in the fridge staring at me. It feels like the easiest win. Toss it into layers of potatoes and cheese, and suddenly it turns into something that feels planned, not leftover.
There was one time I sliced the potatoes way too thick and thought I ruined everything. Turns out, I just needed more patience in the oven. That’s kind of how this recipe goes. It forgives you if you slow down a bit.
Ingredients I Used for the Recipe
3 tablespoons unsalted butter - this is where the sauce starts, gives it richness
1/4 yellow onion, finely diced - adds a soft, slightly sweet base flavor
3 tablespoons all-purpose flour - helps thicken the sauce so it clings to everything
2 cups milk - makes the sauce creamy and smooth
1/2 teaspoon kosher salt - balances everything, but I go light because of the ham
1/4 teaspoon black pepper - just enough for a little warmth
1 pound russet potatoes, thinly sliced - these soak up all the flavor and turn tender
1 1/2 cups cooked ham, cubed - salty, savory bites in every layer
1 cup sharp cheddar cheese, grated - brings that bold cheesy flavor
1 cup Monterey Jack cheese, grated - melts super smooth and creamy
Fresh parsley, chopped (optional) - for a little color at the end
How to make Easy Au Gratin Potatoes and Ham?
Step 1 - Soften the onions
I start by melting the butter in a skillet over medium-low heat. Then I add the onions and let them cook slowly. I don’t rush this part. When they turn soft and kind of translucent, that’s when I know they’re ready.
Step 2 - Build the base of the sauce
I sprinkle the flour right over those onions and stir it in. It looks a little clumpy at first, which used to freak me out, but it smooths out. I let it cook for a couple minutes until it turns lightly golden.
Step 3 - Turn it into a creamy sauce
Then I slowly pour in the milk while whisking. Slowly really matters here. If I rush it, I end up chasing lumps around the pan. I keep stirring until it thickens into a smooth sauce, then add salt and pepper.
Step 4 - Layer everything in the dish
I grease a baking dish and start layering. Half the potatoes go in first, then half the ham, then a handful of both cheeses. It doesn’t need to be perfect. I just try to spread things out evenly.
Step 5 - Add sauce and repeat
I pour half the sauce over that first layer, then repeat everything again. Potatoes, ham, cheese, and the rest of the sauce. I always save a little cheese for the very top because that’s what gets golden.
Step 6 - Bake until tender and bubbly
I cover the dish and bake it at 350°F for about 45 minutes or so. Then I check the potatoes with a fork. If it slides through easy, I uncover it and let it bake longer until the top gets golden and bubbly.
There’s always that moment when I pull it out and it’s still kind of loose underneath. I’ve learned to let it sit for a few minutes. It thickens up on its own, which feels like a small miracle every time.
Things I’ve learned along the way
I used to think I needed fancy tools to slice potatoes evenly. I tried a mandolin once and honestly scared myself a little. Now I just use a sharp knife and take my time. It’s not perfect, but it works.
Also, cheese matters more than I expected. I tried using just one kind once, and it felt flat. Mixing cheddar and Monterey Jack gives it that balance of flavor and melt that makes it feel complete.
If you’re wondering about peeling potatoes, I go back and forth. Some days I leave the skin on because I’m tired and it still tastes great. Other days I peel them when I want it a little softer and smoother.
And yeah, this reheats pretty well. I sprinkle a few drops of water on top before microwaving. Sounds weird, but it keeps it from drying out. Learned that after eating one too many dry leftovers.
Tips
Slice your potatoes thin, but don’t stress too much
Thin slices cook faster, but if some are thicker, just bake it longer. I’ve stopped overthinking this part.
Watch the salt
Between the ham and cheese, it’s already salty. I’ve overdone it before and couldn’t fix it. Now I go light and adjust later.
Let it rest before serving
This is the hardest part for me. It smells so good right out of the oven, but giving it 10 minutes helps everything settle.
Use what you have
I’ve swapped cheeses more times than I can count. As long as it melts well, it usually turns out just fine.
It works for more than just leftovers
No leftover ham? I’ve used store-bought slices, diced them up, and it still came out great. No one noticed.
At this point, this dish feels like one of those dependable meals I don’t have to think too hard about. It fills the kitchen with that warm, cheesy smell, and somehow that alone makes the whole day feel a little easier.
Creamy, cheesy potatoes layered with tender ham in a rich béchamel sauce. This comforting casserole is perfect for using leftover holiday ham and feeds a crowd with minimal effort.
ingredients
3tablespoons unsalted butter
1/4 yellow onion (finely diced)
3tablespoons all-purpose flour
2cups milk
1/2teaspoon kosher salt (adjust to taste)
1/4teaspoon black pepper
1pound russet potatoes (thinly sliced, about 3 medium)
1 1/2cups cooked cubed ham (about 1/2 pound)
1cup sharp cheddar cheese (grated)
1cup Monterey Jack cheese (grated)
fresh parsley (chopped, for garnish, optional)
Instructions
Make the Sauce
1
Melt butter in a large skillet over medium-low heat. Add diced onion and cook 10 minutes until soft and translucent.
2
Sprinkle flour over onions and whisk to combine. Cook 2-3 minutes until flour turns golden brown.
3
Slowly whisk in milk to prevent lumps. Cook until sauce thickens, about 3-5 minutes. Stir in salt and pepper, then remove from heat.
Assemble the Casserole
4
Grease a medium baking dish with non-stick spray or butter.
5
Layer half the sliced potatoes, half the cubed ham, and half of both cheeses in the dish.
6
Pour half the sauce over the layers. Repeat with remaining potatoes, ham, cheese, and top with remaining sauce.
Bake
7
Preheat oven to 350°F (175°C).
8
Cover dish tightly with foil and bake 40-60 minutes until potatoes are fork-tender.
Time varies based on potato slice thickness
9
Remove foil and bake uncovered 20-30 minutes more until sauce bubbles and cheese is golden brown.
10
Let rest 10 minutes before serving. Garnish with fresh parsley if desired.
Nutrition Facts
Servings 8
Amount Per Serving
Calories385kcal
% Daily Value *
Total Fat18gg28%
Saturated Fat11gg56%
Trans Fat0gg
Cholesterol55mgmg19%
Sodium720mgmg30%
Potassium485mgmg14%
Total Carbohydrate28gg10%
Dietary Fiber2gg8%
Sugars4gg
Protein22gg44%
Calcium 25% mg
Iron 6% mg
* Percent Daily Values are based on a 2,000 calorie diet. Your daily value may be higher or lower depending on your calorie needs.
Note
Salt tip: Ham and cheese add saltiness. If using table salt, reduce to 1/4 tsp; omit if using salted butter.
Cheese swaps: Try Gruyère, Gouda, Fontina, or an Italian/Mexican blend for easy melting.
Make ahead: Assemble, cover, and refrigerate up to 24 hours. Bring to room temp before baking as directed.
Leftovers: Store covered in fridge up to 4 days. Reheat with a few drops of water in microwave for 1 minute.
Keywords:
au gratin potatoes, ham and potatoes, cheesy potato casserole, leftover ham recipe, comfort food
Kelsey Perez
Food & Lifestyle Blogger
I’m a London-based food writer, recipe developer, and home cook who has been passionate about cooking for over 15 years. What started as a way to recreate my mother’s traditional dishes turned into a lifelong love for experimenting with flavors, writing about food, and helping others feel more confident in the kitchen.