WANT TO SAVE THIS RECIPE?
THIS CHEESY HAM AND POTATO CASSEROLE IS THE COMFORT FOOD YOUR WEEKNIGHT DESPERATELY NEEDS
Let me tell you how this casserole came into my regular rotation. I had a leftover chunk of ham sitting in my fridge, a bag of Russet potatoes on the counter, and zero desire to make anything complicated. So I threw together this dish — and honestly, I’ve been making it ever since. It is really that good.
Here’s the thing: not everyone wants eggs at brunch. I know, I know — but it’s true! And this casserole is the perfect answer to that. No eggs anywhere. Just creamy, cheesy, garlicky potatoes and ham baked together into something totally irresistible. It works for a lazy Sunday brunch just as well as a busy Tuesday dinner.
The sauce is simple. The ingredients are budget friendly. And the whole thing is make-ahead friendly, which means you can do all the work the night before and just pop it in the oven when you’re ready. I don’t know about you, but that kind of recipe is basically my love language.
So whether you’re feeding a crowd for the holidays or just trying to use up that leftover Easter ham — boom, dinner is served!

INGREDIENTS NEEDED
- Potatoes (2 pounds / about 915g): Russet or Yukon Gold are really your best options here. Both hold their shape after baking while still getting that buttery-soft bite. You can peel them or leave the skins on — totally your call.
- Cooked ham (2 cups / about 300g or 8 ounces, cubed): Leftover holiday ham works perfectly. Or just grab an 8-ounce ham steak from the store. Swap idea: cooked sausage or chopped bacon work great too.
- Sharp white cheddar cheese (1½ cups / 150g, shredded, divided): I really love white cheddar here, but smoked gouda, gruyere, pepper jack, or regular sharp cheddar are all solid choices. Shred it yourself — pre-shredded bags don’t melt as nicely.
- Unsalted butter (3 tablespoons / 43g): This is the base of your cream sauce. Don’t skip it.
- Yellow onion (¾ cup / 100g, chopped): About half of a large onion. Gives the sauce a really deep, savory base.
- Garlic (3 cloves, minced): Fresh garlic is definitely the way to go here.
- All-purpose flour (3 tablespoons / 24g): This thickens your sauce into that gorgeous gravy-like consistency.
- Whole milk (2 cups / 480ml): Whole milk gives you the best creamy texture. Low-fat or non-dairy milk can work in a pinch. I don’t recommend nonfat milk — it won’t give you enough body. And skip the half-and-half too; it’s a tad too thick.
- Smoked paprika (½ teaspoon): Adds a subtle smoky depth that makes everything better.
- Ground mustard (½ teaspoon): I don’t recommend skipping this one. It doesn’t make the dish taste like mustard — it just adds a really nice sharpness and complexity to the sauce.
- Salt (¾ teaspoon) and fresh ground pepper (½ teaspoon): Season as you go and taste your sauce before it goes into the dish.
- Dried parsley (1 teaspoon) or fresh chopped parsley (2 teaspoons): Goes into the sauce and also makes a beautiful garnish on top.
- Optional garnishes: Fresh parsley, sliced green onion, chives, or a drizzle of hot sauce right before serving.
HOW TO MAKE
Start with the potatoes. Peel them and chop everything into roughly ¾-inch chunks — no need to be precise, just eyeball it. You’ll end up with just over 6 cups of potato pieces. Drop them into a medium pot, cover with cold water, and bring the whole thing to a boil. Once it’s boiling, let them go for just 5 to 6 minutes. Pull them off the heat and drain. This is important — you’re not trying to fully cook the potatoes right now. You just want them slightly softened so they finish perfectly in the oven. Over-cooking here is a really common mistake.
While your potatoes are draining, grease your baking dish. Any 3 to 4-quart oven-safe dish works — a 9×13-inch pan is easy, or a round 4-quart dish like I use. Toss your warm drained potatoes, cubed ham, and 1 cup (about 100g) of the shredded cheese right into the dish. Give it a gentle stir and set it aside. Go ahead and preheat your oven to 375°F (191°C) now.
Now let’s build the sauce. Set a large skillet over medium heat and melt the 3 tablespoons of butter. Once it’s melted, drop in ¾ cup of chopped onion and 3 minced garlic cloves. Cook those down for about 3 minutes, stirring here and there, until the onion softens up a bit. Then add the ¾ teaspoon salt, ½ teaspoon pepper, ½ teaspoon smoked paprika, ½ teaspoon ground mustard, 1 teaspoon dried parsley, and 3 tablespoons of flour all at once. Stir everything together until the flour is fully absorbed and you don’t see any dry patches.
Turn the heat down to low. Slowly pour in the 2 cups of whole milk while stirring constantly. Let the sauce simmer gently for 3 to 5 minutes, and you’ll watch it thicken into this gorgeous, creamy gravy-like consistency. Taste it. This is your moment to adjust — add a bit more salt, a tad more paprika, whatever it needs. Then pull it off the heat.
Pour the warm sauce straight over your potato and ham mixture. Gently fold everything together so every piece gets coated. Cover the dish tightly with aluminum foil and slide it into your preheated 375°F oven. Bake covered for 30 minutes. Then pull it out, scatter the remaining ½ cup of shredded cheese across the top, and return it to the oven uncovered for another 5 to 10 minutes. You’re looking for melted, bubbly cheese and the casserole bubbling around the edges. That’s when you know it’s totally ready.
Let it sit for just a few minutes before serving. Scatter fresh parsley, green onion, or chives on top — and definitely consider that drizzle of hot sauce. It is a really nice touch.

FREQUENTLY ASKED QUESTIONS
Can I make this casserole the night before?
Yes, and honestly this is one of the best reasons to make it! Assemble everything through the step where you fold the sauce into the potato and ham mixture. Cover the dish tightly and refrigerate overnight. When you’re ready to bake, pull it out of the fridge and let it sit at room temperature for about 30 minutes first. Then bake as directed, adding an extra 5 to 10 minutes before you put the cheese on top. Easy and stress-free.
Can I freeze this casserole?
Definitely! You can freeze it before or after baking. For the unbaked version, assemble it fully, wrap it up tight, and freeze for up to 3 months. Thaw it at room temperature before baking as directed. If it’s already baked and cooled, just wrap it well and freeze the same way. To reheat, cover with foil and warm it in a 350°F (177°C) oven for about 20 minutes.
What kind of potatoes work best?
I really recommend sticking with Russet or Yukon Gold potatoes. Both do a great job holding their shape through the par-boil and oven bake without turning mushy. Yukon Golds have a slightly buttery flavor that is really wonderful in this dish. I don’t recommend waxy potatoes like red potatoes — they tend to stay a bit too firm.
My sauce turned out too thick. What went wrong?
This can happen if the heat was a tad too high or you let it simmer a bit too long. The simple fix is to stir in a splash more whole milk, a little at a time, until it loosens up to a pourable, gravy-like consistency. Just make sure your sauce is still warm and flowing when you pour it over the potatoes — it will thicken a bit more as everything bakes together, and that’s totally fine.
Can I swap out the ham for something else?
Absolutely! The same 2-cup amount of cooked and crumbled sausage works really well here. Or you can use about 1½ cups of chopped cooked bacon. Both give you that same salty, savory element that makes this casserole so satisfying. Let’s be real — this recipe is pretty flexible, and it’s hard to go wrong.
Cheesy Ham and Potato Casserole
Ingredients
- 2 pounds Russet or Yukon Gold potatoes about 915g
- 2 cups cubed cooked ham about 300g / 8 ounces
- 1½ cups shredded sharp white cheddar cheese, divided 150g / 5.25 ounces
- 3 tablespoons unsalted butter 43g
- ¾ cup chopped yellow onion 100g
- 3 cloves garlic, minced
- 3 tablespoons all-purpose flour 24g
- ¾ teaspoon salt
- ½ teaspoon fresh ground pepper
- ½ teaspoon smoked paprika
- ½ teaspoon ground mustard
- 1 teaspoon dried parsley or 2 teaspoons fresh chopped parsley
- 2 cups whole milk 480ml
- fresh parsley, sliced green onion, chives, or hot sauce optional garnish
Instructions
- Peel your potatoes and cut them into ¾-inch chunks — you’ll end up with just over 6 cups. Place the pieces into a medium pot, cover with cold water, and bring to a full boil. Keep them boiling for exactly 5 to 6 minutes — just enough to soften slightly, not cook through. Drain well and set aside.
- Grease a 9×13-inch baking pan or any 3 to 4-quart oven-safe dish. Scatter the warm drained potatoes, cubed ham, and 1 cup (about 100g) of shredded white cheddar into the dish. Gently fold them together and set the dish aside. Preheat your oven to 375°F (191°C).
- Place a large skillet over medium heat and melt 3 tablespoons (43g) of butter. Toss in ¾ cup (100g) of chopped onion and 3 minced garlic cloves. Cook for about 3 minutes, stirring occasionally, until the onion softens. Stir in ¾ teaspoon salt, ½ teaspoon pepper, ½ teaspoon smoked paprika, ½ teaspoon ground mustard, 1 teaspoon dried parsley, and 3 tablespoons (24g) of flour. Stir until the flour is fully absorbed.
- Reduce the heat to low. Slowly pour in 2 cups (480ml) of whole milk, stirring the entire time. Let the sauce simmer for 3 to 5 minutes until it thickens to a gravy-like consistency. Taste and adjust seasoning if needed, then remove from heat.
- Pour the warm sauce over the potato and ham mixture in the baking dish. Gently fold everything together until well coated.
- Cover the dish tightly with aluminum foil and bake at 375°F (191°C) for 30 minutes. Remove the foil, scatter the remaining ½ cup (about 50g) of shredded cheese over the top, and bake uncovered for another 5 to 10 minutes until the cheese is fully melted and the edges are bubbling. Remove from the oven and top with fresh parsley, green onion, chives, or a drizzle of hot sauce before serving.
- Store any leftovers covered in the refrigerator for up to 1 week. To reheat the full casserole, cover with foil and warm in a 350°F (177°C) oven for 20 minutes.
Nutrition
WANT TO SAVE THIS RECIPE?









