Potato Casserole With Ham and Cheese

Potato, ham, and cheese casserole

undefined undefined / Getty Images 

Prep: 20 mins
Cook: 35 mins
Total: 55 mins
Servings: 6 to 8 servings
Nutritional Guidelines (per serving)
579 Calories
37g Fat
42g Carbs
22g Protein
See Full Nutritional Guidelines Hide Full Nutritional Guidelines
Nutrition Facts
Servings: 6 to 8
Amount per serving
Calories 579
% Daily Value*
Total Fat 37g 47%
Saturated Fat 21g 104%
Cholesterol 101mg 34%
Sodium 757mg 33%
Total Carbohydrate 42g 15%
Dietary Fiber 4g 14%
Protein 22g
Calcium 587mg 45%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)

Bake this delicious potato casserole as a main dish or side dish. Ham and cheddar cheese make it hearty enough to serve as a one-pot meal, or use a bit less ham and make it a side dish. It's an excellent casserole to take along to a potluck dinner. 

Replace the green onions with 1 cup of chopped yellow onions or omit the onions altogether. Feel free to add some steamed peas and carrots or mixed vegetables to the potato mixture for more color and nutrients. The best choice for potatoes is a medium starch potato like the Kennebec or Yukon Gold. The starch content makes for a creamy sauce while they tend to hold their shape better than russets.

Scale the recipe up for a potluck or make two casseroles and freeze one. See the freezing and reheating instructions below the recipe.


  • 2 pounds potatoes
  • 1 cup chopped green onions
  • 1 cup chopped yellow onions
  • 5 tablespoons butter
  • 5 tablespoons all-purpose flour
  • 2 1/2 cups milk
  • 2 tablespoons Worcestershire sauce
  • 1/2 teaspoon prepared yellow mustard (or Dijon)
  • 1 teaspoon salt
  • 1/2 teaspoon pepper
  • 1/4 teaspoon paprika
  • 2 tablespoons chopped pimiento
  • 2 cups shredded cheddar cheese
  • 2 cups diced cooked ham
  • 1/2 cup breadcrumbs (soft, unseasoned)
  • 3 tablespoons butter (cut into small pieces)

Steps to Make It

  1. Peel the potatoes and cut them into 1/2-inch dice. 

  2. Put the potatoes in a saucepan with the onions and cover with salted water. Place the pan over high heat and bring to a boil. Reduce the heat to medium-low, cover the pan, and cook for about 10 to 14 minutes, or until tender. Drain and set aside.

  3. Heat the oven to 350 F.

  4. Melt the butter in a medium saucepan over medium heat. Add the flour and stir until smooth. Continue cooking for 2 minutes, stirring constantly. Gradually whisk the milk into the roux mixture. Add the Worcestershire sauce, mustard, salt, pepper, paprika, and pimiento. Cook, stirring, until thick.

  5. Place half of the cooked and drained potatoes and onions in a large buttered 3-quart baking dish. Cover potatoes with half of the cheese. Spread all the ham on the cheese. Cover with remaining potatoes.

  6. Pour the cooked seasoned white sauce overall. Sprinkle remaining cheese over top. Sprinkle with bread crumbs then dot with butter.

  7. Bake in the preheated oven until cheese has melted, about 10 to 15 minutes.


  • To Freeze: Follow steps 1 through 5 but don't preheat the oven and omit the breadcrumbs and 3 tablespoons of butter for the topping. Pour the white sauce over the potato mixture and sprinkle with the remaining cheese. Wrap the casserole (in the pan) tightly in foil.
  • To reheat from frozen, remove the casserole from the freezer the night before; refrigerate the casserole overnight to defrost. Sprinkle the casserole with breadcrumbs, dot with the 3 tablespoons of butter, and bake in a preheated 350 F oven for about 20 to 30 minutes.

Glass Bakeware Warning

For premade casseroles or leftovers that are in a glass baking dish and have been refrigerated, do not place directly into a hot oven as the glass can shatter. Instead, place any cold glass bakeware into a cold oven to warm up while it preheats. Or, allow the bakeware to rest outside of the fridge for 30 minutes to reach room temperature while the oven preheats.