This savory ham and potato casserole is wonderfully cheesy, flavorful, and super satisfying. It’s a delicious way to use leftover ham, and it can do double duty as a brunch recipe or a dinner dish. I love using sharp white cheddar cheese, but smoked gouda or gruyere are other tasty choices!
One reader, Kasanita, commented: “This was DELICIOUS. Everything I hoped it would be. My family devoured it. There were definitely no leftovers. The spices, the cheese choiceโeverything was excellent. The recipe instructions were so easy to follow and work with. Love! Such a fan of this site! โ โ โ โ โ “
Meet your new favorite comfort food:

A Savory Brunch Recipe (That Isn’t Eggs)
Cheesy, garlicky, hearty ham and potato casserole. Couldn’t you just dive right in? The flavors and textures are reminiscent of tartiflette, a creamy potato and bacon casserole from the French Alps. This is satisfying fare that’s perfect for a snow dayโbut you don’t have to be mountainside to enjoy it! ๐
With all the sweets around this time of year, a savory recipe is extra welcome. You know I love a good make-ahead breakfast casserole or easy frittata when hosting for the holidays, but not everyone likes or can have eggs, so I set out to create an eggless casserole that’s just as delicious and deserving of a prime spot on the brunch table. It’s also a wonderful choice in the spring when planning your Easter brunch recipes, or in the fall when looking for delicious fall dinner recipes.
Here’s Why You’ll Love This Ham & Potato Casserole
- As flavorful as ham and cheese strata, but with potatoes instead of bread
- Egg-free alternative to breakfast casserole & quiche
- As welcome for brunch as it is for dinner
- Creamy, cheesy gravy-like sauce comes together easily on the stove
- A great way to use up leftover cooked ham
- Make-ahead friendly
- Satisfying, cold-weather comfort food

Key Ingredients You Need
- Potatoes: I recommend Russet or Yukon Gold potatoes for this casserole. Both hold their shape pretty well, and at the same time, taste buttery soft. You need to briefly pre-cook them, but only for about 5โ6 minutes. Feel free to peel them, or leave the peels on.
- Cooked ham: If you have leftover ham, go ahead and use it here. Or just buy an 8-ounce ham steak, which is what I did for the pictured casserole. Instead of ham, feel free to use cooked sausage or bacon.
- Cheese: I use white cheddar, just like I do in butternut squash mac and cheese. You could also use regular cheddar, smoked gouda, gruyere, pepper jack, or a mix. Potatoes aren’t picky.
- Smoked paprika + ground mustard: This is a common flavor combo in many brunch and ham recipes, such as ham and cheese breakfast strata and deviled eggs. (And even beer cheese dip!) Don’t worry, this dish does not taste like mustard.
- Parsley: I usually use dried parsley in the sauce and then garnish the finished casserole with fresh, but you can use either.
- Milk: Whole milk makes the best cream sauce texture, though low-fat, or nondairy milks would work in a pinch. Do not use nonfat milk.
You also need butter, garlic, onion, salt, pepper, and flour.

Prep the Potatoes First: Peel, Cut, Boil
You need to par-boil the potatoes for this casserole. Peel and chop the potatoes, then boil for just a few minutes, to give them a head start on softening. Gather your sauce ingredients in the meantime.

Make a Quick & Creamy Homemade Sauce
You’ll make an easy (but uber-flavorful) gravy-like cream sauce, flavored with garlic and onion, smoked paprika and ground mustard, and some herby parsley. The sauce starts like the filling for this turkey pot pie. Bring it all together with some butter and flour for thickening, and use milk as the liquid. It’s pretty easy.
Now all you have to do is combine everything, and bake. Here’s the pre-cooked and drained potatoes, ham, and cheese:

Stir it all together with the creamy sauce (just toss it all right in the greased baking pan). Any 3โ4-quart baking dish works, such as a 9×13-inch pan. I use a round 4-quart baking dish.

Bake the casserole covered, and then when it’s almost done, sprinkle with cheese and return to the oven uncovered. (What’s a casserole without some cheese on top?!) You know it’s ready when the cheese is melted and the casserole is bubbling all over.

You Can Prep It Ahead
The best part about this casserole, and recipes like this baked cream cheese French toast casserole and reader-favorite everything bagel breakfast casserole, is that you can prep it ahead.
To make it ahead, assemble the casserole, then cover and refrigerate overnight. Remove it from the refrigerator, allow it to come up to room temperature for about 30 minutes, and then bake as directed; you may need to add an extra few minutes to the bake time. I added these instructions to the printable recipe card below.
Here’s What to Serve With Ham & Potato Casserole
If serving this casserole for brunch, it nestles nicely alongside platters of fresh fruit, eggs, bacon or sausage, smoked salmon, slow cooker cinnamon rolls, or whole wheat blueberry pancakes. (None of which require the oven!) It would also be fantastic alongside a Dutch baby piled high with all your favorite sweet toppings.
Flavor tip: add a drizzle of hot sauce on top before serving!
If this will be a main dish for dinner, serve this comforting casserole with some green sides like a fresh salad, steamed green beans, or asparagus. Or make it a side dish to accompany a lighter main, like crab cakes, seared scallops, or baked lemon garlic salmon. Lots of ways to enjoy this versatile dish!

Cheesy Ham & Potato Casserole
- Prep Time: 30 minutes
- Cook Time: 45 minutes
- Total Time: 1 hour, 15 minutes
- Yield: serves 10
- Category: Breakfast
- Method: Cooking
- Cuisine: American
Description
This hearty ham and potato casserole is cheesy, flavorful, and satisfying. It’s a delicious way to use leftover ham, and it can do double duty as a brunch recipe or a dinner dish. For other ingredient suggestions, see recipe Notes below.
Ingredients
- 2 pounds (about 915g) potatoes (I recommend Russet or Yukon Gold)
- 2 cups (about 300g or 8 ounces) cubed ham
- 1 and 1/2 cups (150g or 5.25 ounces) shredded sharp white cheddar cheese, divided
- 3 Tablespoons (43g) unsalted butter
- 3/4 cup (100g) chopped yellow onionย (1/2 of a large onion)
- 3 garlic cloves, minced
- 3/4 teaspoon salt
- 1/2 teaspoonย freshย ground pepper
- 1/2 teaspoon smoked paprika
- 1/2 teaspoon ground mustard
- 1 teaspoon dried parsley (or 2 teaspoons fresh chopped parsley)
- 3 Tablespoons (24g) all-purpose flour
- 2 cups (480ml) whole milk
- optional, for garnish: chopped fresh parsley, green onion, chives, or hot sauce
Instructions
- Peel potatoes, cut into 3/4-inch pieces (just eyeball it). You’ll have just over 6 cups chopped potatoes. Cover with water in a medium pot. Bring to boil. Once boiling, boil for just 5โ6 minutes. You don’t want the potatoes super soft and tender just yet, only slightly softened. Drain.ย
- Grease a 9ร13-inch or any 3โ4-quart oven-safe dish. Add warm drained potatoes, ham, and 1 cup (about 100g) of shredded cheese. Gently toss together. Set aside.
- Preheat oven to 375ยฐF (191ยฐC).
- Melt the butter in a large skillet or saucepan over medium heat. Add the onion and garlic and cook, stirring occasionally, until onions have softened, about 3 minutes. Stir in salt, pepper, smoked paprika, ground mustard, parsley, and flour until combined and flour has absorbed any liquid. Reduce heat to low, and then slowly stir in the milk. Simmer for 3โ5 minutes or until thickened into a gravy consistency. Remove from heat. Taste and, if desired, add more salt, pepper, paprika, mustard, or parsley to taste.
- Pour warm sauce over ham and potatoes. Toss gently to coat.
- Bake, covered with aluminum foil, for 30 minutes. Remove aluminum foil, sprinkle remaining cheese on top, and return to the oven for 5โ10 more minutes or until cheese is melted and casserole is bubbling around the edges.
- Remove from the oven and garnish with fresh parsley, green onion, chives, or a drizzle of hot sauce.
- Store leftovers in the refrigerator for up to 1 week. Reheat as desired. To reheat the entire casserole, cover with aluminum foil and reheat in a 350ยฐF (177ยฐC) oven for 20 minutes.
Notes
- Make Ahead Instructions: This is an excellent make-ahead recipe because you can assemble it before baking up to 1 day in advance. Assemble the casserole through step 5. Cover and refrigerate overnight. Remove from the refrigerator, and allow to sit at room temperature for 30 minutes. Continue with step 6, adding an extra 5โ10 minutes to the bake time before adding the cheese topping.
- Freezing Instructions:ย To freeze the unbaked casserole, assemble it then cover tightly and freeze for up to 3 months. Thaw at room temperature, then bake as directed. You can also freeze the baked and cooled casserole. Cover tightly and freeze for up to 3 months. Thaw at room temperature, then cover with aluminum foil and reheat in a 350ยฐF (177ยฐC) oven for 20 minutes.
- Special Tools (affiliate links): Vegetable Peeler | 9×13-inch Baking Dish or any 3- to 4-quart Oven-Safe Baking Dish | Box Grater
- Ham: Instead of ham, feel free to use the same amount of cooked and chopped/crumbled sausage, or about 1 and 1/2 cups chopped/crumbled bacon.
- Cheese: Instead of white cheddar, feel free to use regular sharp cheddar cheese, smoked gouda, gruyere, pepper jack, or a mix.
- Ground mustard: This is a common ingredient in cheesy and/or brunch dishes; it adds a sharp kick and depth of flavor. I donโt recommend skipping it.
- Milk:ย Whole milk makes the best cream sauce texture, though low-fat, or nondairy milks would work in a pinch. Do not use nonfat milk, and do not use half-and-half because it’s too thick.























Reader Comments and Reviews
Love this recipe and how customizable it is. And my husband LOVES it. I’ve overheard him telling at least 2 of his friends how good it was. I only had enough potatoes for about 4 cups which worked, but next time I’ll make sure to add more to get to 6+ cups. I also added 1 c of fresh broccoli at the suggestion in one of the comments, and that was great! I will add even more broccoli next time – and/or any other fresh veggies I have on hand and need to use up. This is definitely a recipe I’ll use again and again. Thanks, Sally!
Could I use a muffin pan instead to make little cups instead of Bain for all in a dish?
We’re sure you could, but they may not hold together. Let us know what you try!
This is my teen’s new favorite. He requests it at least once a week. The first time, we only had cream in the house and you are correct: it was too rich to use anything more than whole milk.
Also, my cheese-loving family felt that even 1 c cheese mixed in was actually too much. I cut the cheese mixed in the casserole to 1/2 c, keeping the 1/2 c sprinkled on top and it was perfect.
The subsequent times I used our regular 1% milk and it also helped with the “richness” of the dish. We use regular sharp cheddar. We will be having this dish instead of mashed potatoes for Canadian Thanksgiving, at my son’s insistence this year! Definitely a keeper!
Halfed the recipe and omitted the onions as we don’t like onions but added some onion powder instead didn’t have whole milk either so I mixed half and half with milk. Turned out good
Hi Sally,
I made this for the first time today and as always your recipes never disappoint me!
This was easy to make and delicious!!!
Thank you for sharing
Can I slice the potatoes like a gratin instead of cubing them? Wonder how that would affect the baking time….
Hi Jo, you can certainly slice the potatoes, like you would for scalloped potatoes. The bake time depends on how thick you slice the potatoes. We would say the bake time would be slightly extended, perhaps 40 minutes covered and the last 15 or so minutes uncovered. You can always prick the potatoes with a fork to check their doneness towards the end of bake time.
Very tasty!! This recipe is going to become a regular at our house.
Can I substitute cubed chicken instead of ham?
thanks
Absolutely!
Seriously scrumptious! Thank you!
On a whim, I decided to make this for dinner (along with homemade cinnamon rolls and cut up fruit) and it was DELICIOUS. Great flavor and I’ll definitely make this again!
A keeper! I made a double batch as written and it was a hit! Everyone, including my picky uncle, had seconds. Glad I doubled the recipe. I might add asparagus or broccoli next time. This is my new favorite way to use up leftover ham. Thanks for sharing.
Very flavorful, my family loved it! I did half the amount of potato and replaced it with blanched broccoli which made it a complete meal. It is a great make ahead meal. My husband said it made
a perfect dinner for winter months.
Do Not put your potato/ham mixture in the 9X13 dish in step 2. Put it in a mixing bowl and then mix it with the sauce mix. The instructions call for putting it in the dish and then trying to mix a full dish with the sauce. That’s a great way to make a huge mess. The cheese seemed a bit light for such so many potatoes so I doubled the cheese by tossing in some extra mozzeralla I had in the fridge. Glad I did. I also blanched a small amount of broccoli and tossed it in as well.
Your recipes is less than adequate, you tell how to make it but not the amounts to use which makes your ham casserole dish useless.
Hi John Doe, do you see the gray recipe card above this comments section? You can also use the “jump to recipe” button at the top of the page to go straight to the full recipe. Hope this helps!
This recipe was a unanimous at our house the first time we tried it. It is delicious.
I had leftover ham from Christmas and I was trying to come up with an idea to use it up. I came across this recipe and wow, it was good! Thank you for your recipe! I will be hanging a copy of this on my refrigerator!
Made it for this Easter holiday and it was a big hit everyone loved it! So yummy!
We enjoyed this recipe.
We enjoyed this recipe. It was easy to follow. I made it with gruyere cheese.
I have made this recipe twice now and it always turns out very liquidy and I don’t know why. I follow the directions exactly, except I do always double it.
For me it took a surprisingly long time for the sauce to thicken. When it did. it did so beautifully.
This is delicious and a keeper! I multiplied the recipe x5 to make for a church dinner. It turned out wonderfully!
I loved this recipe!! Can I add sour cream? If so how much and would I need to eliminate anything else? What about adding broccoli to the casserole?
Hi Ellen, we haven’t tried adding sour creamโwe’re sure you could, but it would require tinkering with the other ingredients so that the casserole doesn’t become too thick. Broccoli would be a great addition!
Iโm eating this right now and it is delicious. Super easy as well!
This was DELICIOUS. Everything I hoped it would be. My family DEVOURED it, definitely no left overs. The spices, the cheese choice, everything was excellent. The recipe instructions were so easy to follow and work with. Love! Such a fan of this site!
Family ate it. Was expecting something a little bit more cheesy. Maybe next time I’ll put a whole two cups of cheese.
This recipe is amazing. I used a two pound bag of frozen hashbrowns just pull them out of the freezer and put a little water in the bowl no need to boil, just drain, also added 2 small onions instead of just the half and added a 16oz package of diced ham cause my husband is a meat man. Had to add 1 extra tbsp of flour for the sauce to thicken like gravy other than that precisely as the recipe says. It turned out delicious.
Hi, looking forward to making this recipe! Could I use corn starch instead of flour for my family with celiacโs?
Hi Jenn, cornstarch could work; I would halve the amount, though.
Iโve used GF flour with great success.
If you are making it the day before and you put the liquid over it, won’t the potatos absorb all the liquid and make it dry when you bake it????
Hi Florence, we’ve made this recipe ahead of time many times and have not run across that issue.
My husband and I loved this! I didnโt have a couple ingredients so I subbed about 3/4 teaspoon of Dijon mustard in place of the mustard powder, and fresh basil instead of parsley. Turned out so well!
I dont have smoked paprika. Could I use regular paprika instead?
You bet!