Ham and Cheese Breakfast Casserole

Look for loaves of bread at the store marked "toasting." These are generally firmer than other loaves of white sandwich bread. (And if you can't find toasting bread, just buy sandwich bread that seems fairly firm and substantial.)

If the tomatoes at the store don't look ripe, it's fine to skip them for this recipe.

You can substitute another melting cheese in place of the cheddar, if you want, like Swiss cheese or Monterey jack.

  • Prep time: 20 minutes
  • Cook time: 1 hour
  • Chilling time: 12 to 48 hours
  • Yield: 10 servings


  • Butter (for the dish)
  • 1 loaf sliced white toasting bread
  • 3/4 pound mild cheddar, grated
  • 8 small tomatoes, or 16 cherry tomatoes, thinly sliced
  • 1 thick slice (3/4 pound) flavorful baked ham, cut into 1/4-inch dice (About 2 1/2 cups diced)
  • 10 large eggs
  • 3 cups whole milk
  • Salt and pepper, to taste


1 Prepare the bread: Butter a deep 9-by-13-inch baking dish. Cut the bread slices on a diagonal to make large triangles. Fit as many triangles as you can in the bottom of the dish, cutting smaller pieces to wedge between the larger ones, if necessary, to completely cover the bottom.

Ham and Cheese Breakfast Casserole

2 Begin layering the casserole: Sprinkle the bottom layer of bread with half the cheese. Lay half the tomato slices here and there over top, and sprinkle with half the ham. Add another layer of bread, again cutting smaller pieces, if necessary, to make a solid layer. Sprinkle with all but 2 tablespoons of the remaining cheese, and the remaining tomatoes and ham. Cover with a third layer of bread. (You may have a few slices of bread leftover.)

Ham and Cheese Breakfast Casserole Ham and Cheese Breakfast Casserole

3 Whisk together the eggs and milk: In a bowl, beat the eggs, milk, and a generous pinch of salt and pepper. Pour the mixture carefully over the bread. With your hands, press the bread into the egg mixture. Sprinkle the remaining 2 tablespoons cheese over top.

Ham and Cheese Breakfast Casserole

4 Cover and refrigerate. Refrigerate for at least 12 hours, or for up to 48 hours.

5 When ready to bake, let the dish sit at room temperature for 30 minutes. Heat the oven to 375F. Remove the plastic wrap from the dish and set it on a large rimmed baking sheet to catch any drips.

6 Bake the casserole for 55 to 60 minutes, or until it is puffed and golden brown and cooked through in the middle. A thermometer inserted into the center of the dish should register 160F. If the casserole needs to cook longer, cover it loosely with foil and continue cooking for 5 to 10 minutes.

Ham and Cheese Breakfast Casserole

7 Let the casserole sit for 5 minutes before cutting into squares.

Click on the comments you'd like to print with your recipe. Grayed out comments will not print.


  • Tina

    OMG – soooo delicious and cheesy. I did not toast the bread (too much work) and used a French loaf from the local bakery. You could not tell the final product was cut into triangles at all. My guests loved it – even though who “don’t eat breakfast” had some. I had left over ham so I cut it into small bits/slivers and it worked well and used farm fresh Roma tomatoes to cut down on any additional liquid (used lots of tomatoes covering the whole layer). I love cooking, and this is the first time I’ve left a review because it’s simple, pretty and delicious. Thank you!


  • Tina

    Can you dry the bread first like when you make stuffing?

  • Katerina

    Absolutely fantastic! Today I am preparing already a third casserole, following the recipe (nearly) from A to Z, I just omitted tomatoes. It is very simple yet smart and delicious dish and I am looking forward to testing similar recipes on your web!
    Katerina from Praha


  • Jeanne

    Hello…I plan to make this in a day or so but it is much more than I’ll need. Wondering if, after it’s cooked, it can be frozen in pieces. Thank you.

    • Emma Christensen

      Hi, Jeanne! We haven’t tested this frozen yet, but my gut instinct is that yes, the slices would freeze quite well. I’d re-warm them in a low oven, covered with foil, until warmed through. Or in the microwave, covered loosely with a damp paper towel or a loose lid. Enjoy!

  • Crow T Cookbot

    My mom would use something similar to bribe me to come over to do some work around her house. Totally worth the sweat, to get her breakfast casserole.

  • Jena

    I am wondering if you have tried to substitute 100% whole wheat bread and, if so, how did it turn out?

    • Emma Christensen

      Hi, Jena — we haven’t tried this yet! I think that a 100% whole wheat bread (like one of those fairly chewy artisan loaves) would work ok, but definitely refrigerate overnight and check to make sure the egg mixture is fully saturated in the bread before baking (press down on the top; the bread should feel like a sponge). It might also take a little longer to bake all the way through — you can cut into the casserole in the middle to check. If you’re using whole wheat sandwich bread, like the kind that comes in a plastic bag at the grocery store, then I think you can follow the recipe as is. Let us know if you try it!

  • Karen

    Can you substitute fat free or low fat milk for the whole milk?

    • Sheryl Julian

      Karen, hello! Yes, of course you can cut down on the richness of the milk. Use what you have on hand.

  • Kathleen

    What depth pan would you suggest to minimize dripping, and does it have to be a ceramic type pan? All my 9×13 pans are just your standard box cake aluminum pan. Thank you!

    • Sheryl Julian

      Hello Kathleen! For something like this breakfast casserole, an ovenproof glass or ceramic baking dish gives a great crust. It should be 2-inches deep. If your pan is full to the top, set it on a rimmed baking sheet to catch any drips.

  • Alan spedding ( cumbriafoodie )

    Its on my list…. New year treats. Thank you

  • Yuri

    This is look so good and easy cooking. I have a question . I’d like to have take for my husband lunch to work, do you think I can make this the night before for next morning ? And if so, I should btter put in refrigerator after bake ? Thank you

    • Sheryl Julian

      Hello Yuri! This takes an hour to bake, and if you’re packing it for lunch, it doesn’t need to be hot. Why not assemble it 2 days in advance, bake it the night before, and use the time in the morning to cut it into squares?

  • Lara

    This looks really delicious. I’m wondering about the reason for cutting the bread into triangles, if you are using a square pan and will be serving in squares. Why not just leave the bread in squares as it comes out of the packaging?

    • Sheryl Julian

      Hello Lara! I cut the bread into triangles for two reasons. One is that you want the egg mixture to fall between the pieces, so it’s better to have them smaller than how they come in the package. The other is to make the top look pretty with triangles. So I cut everything into triangles to begin with. By all means, use the large squares, if you like.

  • Alida @My Little Italian Kitchen

    This is very clever, I could have this for lunch too! Great idea.