This breakfast casserole recipe features savory ham, potatoes, bell peppers, and onions, baked into a deliciously cheesy egg custard. The ultimate morning recipe to feed a family or portion out for meal prep during the week.
For more make-ahead breakfast recipes, try my French toast casserole and delicious quiche Lorraine.

Jessica’s Recipe Science
- Cooking the vegetables before baking drives off excess moisture and concentrates flavor, preventing a watery casserole.
- Keeping the proper ratio of eggs to dairy ensures the proteins coagulate evenly, creating a tender, custardy texture.
- Cornstarch absorbs excess moisture and thickens as it heats, helping the casserole set tenderly without becoming watery.
Featured Comment 61
“I made this breakfast casserole for Mother’s Day Brunch and it was a hit – 5 Star Keeper. I will be making it again. Thank you Jessica!”—David W.
Why It Works
This easy breakfast casserole combines eggs, savory protein, colorful vegetables, and melted cheese into a hearty, naturally gluten-free dish that can be customized to fit your needs. The key is balancing the ratio of fillings to eggs so the casserole sets properly with a tender, custardy texture. The mixture bakes into a fluffy, savory soufflé-like dish with a beautiful golden crust.
Baked egg dishes can sometimes turn rubbery or watery, especially when high-moisture vegetables or dense meats are added. Sautéing the potatoes and vegetables helps cook off excess water and concentrate their flavor. A small amount of cornstarch in the egg mixture reinforces the protein structure, keeping each slice light while suspending the fillings evenly throughout.
Jump To a Section
Ingredients You’ll Need
- Olive Oil: Helps conduct heat evenly when sautéing the potatoes and vegetables, promoting browning through the Maillard reaction while preventing sticking.
- Yukon Gold Potatoes: Their medium starch content creates a creamy interior while holding their shape, adding hearty structure.
- Alliums: Red onion provides natural sweetness and mild sharpness. Cooking minced garlic mellows its pungency while releasing sulfur compounds that enhance savory flavor.
- Red Bell Pepper: Contributes subtle sweetness and vibrant color, creating contrast with the salty ham and creamy custard base.
- Ham: Supplies protein, salt, and umami, enriching the overall flavor while adding satisfying texture throughout the casserole.
- Seasoning: Salt enhances the overall flavor of the casserole. Black pepper adds gentle heat and aromatic spice.
- Green Onions: Stirred in at the end for a fresh, mild onion flavor and bright color.
- Sharp Cheddar Cheese: Provides bold flavor and melts smoothly into the custard, adding fat that creates a creamy texture and cohesive slice.
- Cornstarch: Acts as a stabilizer, helping the eggs bind excess moisture and preventing a watery texture by reinforcing the protein network as it sets.
- Half-and-Half: Adds richness and tenderness to the custard, balancing structure from the eggs with a soft, creamy mouthfeel.
- Eggs: The structural foundation of the casserole. As they heat, the proteins coagulate around 160–180°F, forming a firm yet tender matrix that holds everything together.
See the recipe card below for all ingredients and measurements (US and metric).
Ingredient Substitutions
This breakfast casserole recipe is easy to customize! Try these delicious options:
- Oil Options: Swap with avocado oil, melted butter, or ghee for similar heat stability and flavor.
- Potato Swaps: Use different types of potatoes, like diced red potatoes, russet potatoes, defrosted frozen potatoes, or sweet potatoes.
- Veggies: Try butternut squash, broccoli, sauteed mushrooms, chopped spinach, roasted zucchini, sundried tomatoes, or roasted bell peppers.
- Onion Swaps: Use yellow onion, shallots, or leeks for a similar aromatic base.
- Protein Options: Swap with cooked bacon, breakfast sausage, turkey sausage, or omit for a vegetarian version- keep the total protein amount similar. Try my sausage breakfast casserole!
- Green Onion Swaps: Replace with chives or finely chopped parsley for fresh contrast.
- Cheese Options: Try pepper jack, mozzarella, feta, Monterey Jack, provolone, or Swiss.
- Half-and-Half Substitute: Use equal parts whole milk and heavy cream.
- Eggs: For smaller eggs, add 1 or 2 extra eggs to maintain the proper egg-to-liquid ratio.
How to Make Breakfast Casserole
Step 1: Preheat the Oven
Preheating the oven to 350°F (177°C) ensures the eggs begin coagulating immediately once the casserole goes in, promoting even protein setting and preventing a watery or dense texture.
Pro Tip: Greasing the baking dish with olive oil creates a thin lipid barrier that reduces sticking by preventing the egg proteins from bonding tightly to the pan, making for clean slices and easier serving.

Step 2: Sauté the Potatoes
Heating the pan first ensures the potatoes start cooking immediately upon hitting the surface, promoting browning rather than steaming. Adding the oil once the pan is hot improves heat transfer and helps create a lightly crisp exterior.
Sautéing the diced Yukon gold potatoes for about 10 minutes softens their interior as the starch granules gelatinize, while occasional stirring prevents sticking and encourages even cooking. This step develops flavor and ensures the potatoes are fully tender before they finish baking in the casserole.

Step 3: Sauté the Mix-ins
Cutting all the ingredients into smaller pieces before sautéing ensures even cooking and prevents denser elements from sinking to the bottom of the casserole. To ensure the vegetables are fully cooked before baking, each ingredient is sautéed first.
The onions and garlic add aromatics, and the bell peppers add color and a slight crunch. I use pre-cooked ham for the casserole, so if you have leftover honey glazed ham from Easter, it’s a great addition! Sprinkling half the cheese over the vegetables lets it melt into the filling, helping hold the ingredients in place as the casserole sets.
Expert Tip: Spreading the mixture into an even layer helps the casserole cook uniformly, so every bite has a balanced ratio of fillings to custard.

Step 4: Add the Egg Base
A ratio of 8 large eggs to 2 ½ cups of half-and-half ensures a velvety custard texture. If too many eggs are used, the texture can become tough due to increased protein. I use cornstarch to ensure a consistent custard-like texture throughout the casserole.

Pouring the egg mixture over the filling allows it to surround and suspend the ingredients as it sets. Sprinkling the remaining cheese on top creates a melted, golden crust that adds flavor.
Ingredient Chemistry: Adding a small amount of cornstarch to the milk mixture keeps the egg base’s consistency tender and glossy. Cornstarch is a thickening agent that can also stabilize fully cooked eggs. The carbohydrates in cornstarch prevent the proteins in the eggs from binding too tightly. As the starches heat in the oven, they swell and thicken, creating a creamier mouthfeel.

Step 5: Bake the Casserole
This egg breakfast casserole bakes in just 40 minutes. To check for doneness, insert a toothpick into the center of the pan. If it comes out dry, it’s ready. You can also gently jiggle the pan to see if the center moves. You want it to be firm.
Tips for Perfect Execution: For my science geeks, grab an instant-read thermometer and test the casserole’s center. Whole eggs begin to solidify and set between 144°F and 158°F (62°C and 70°C). I found that between 180°F and 190°F (82 °C and 88°C) yields the right finish; don’t overcook the casserole!
Frequently Asked Questions
You can make all the components, cover the tray with foil, place it in the fridge, and bake it fresh the following day. It makes for a delicious overnight breakfast casserole. A few more minutes in the oven may be required since all the ingredients are cold. This breakfast casserole will keep for up to 5 days once baked.
The easiest way to reheat the breakfast casserole is to slice it into individual portions and microwave it for about 1 minute. I got 12 generous portions in a 9 x 13-inch pan. This is an excellent method if you’re meal-prepping for the week. The entire pan can also be reheated in a 300°F (149°C) oven until the center is warm.
A watery breakfast casserole usually means there was too much moisture and not enough structure to hold it together. Vegetables like mushrooms, spinach, or frozen potatoes release water as they cook, so if they aren’t sautéed or drained first, that liquid collects in the dish. The egg-to-dairy ratio also matters; eggs provide the protein network that sets and traps moisture, so too much milk or cream can prevent the custard from fully firming up.
More Casserole Recipes
If you tried this Breakfast Casserole Recipe, please leave a 🌟 star rating and let me know how it went in the 📝 comments below!
Breakfast Casserole

Ingredients
- 2 tablespoons olive oil
- 1 ½ pounds Yukon gold potatoes, peeled, cut into ¼" cubes
- 1 cup red onion, ⅛" dice
- 1 tablespoon minced garlic
- 1 cup red bell pepper, ⅛" dice
- 10 ounces ham, ¼" dice
- 1 ½ teaspoon kosher salt, divided
- ¼ teaspoon black pepper
- ¼ cup sliced green onions
- 6 ounces sharp cheddar cheese, grated
- ¼ cup cornstarch
- 2 ½ cups half-and-half
- 8 large eggs
Instructions
- Preheat the Oven – Set the oven rack to the center position. Preheat to 350ºF (177ºC). Grease a 9×13-inch baking dish with olive oil on the bottom and sides.
- Saute the Potatoes – Heat a large pan or cast iron skillet over medium-high heat. Add 2 tablespoons of olive oil. Once hot, add in the potatoes. Saute until tender, occasionally stirring, for 10 minutes.
- Saute the Mix-ins – Turn the heat down to medium. Add the onions and garlic, and saute for 1 minute. Add the bell peppers and saute for 2 minutes. Add the ham and saute for 1 minute. Turn off the heat and stir in ½ teaspoon salt, black pepper, and green onions. Transfer the mixture to the greased baking dish and spread it into an even layer. Evenly sprinkle half of the cheddar cheese on top.
- Add the Egg Base – In a large bowl, whisk together the cornstarch and 1 teaspoon salt. Add half-and-half and eggs, and whisk until thoroughly combined. Pour the egg mixture into the baking dish. Evenly sprinkle the remaining cheese on top.
- Bake the Casserole – Bake for 20 minutes. Rotate the pan and continue baking until the center sets and a toothpick inserted comes out clean, about 20 minutes. The internal temperature should be 180 to 190ºF (82 to 88ºC). Cool for 10 minutes before slicing and serving.
Recipe Video

Notes
- Storing: Cover and refrigerate leftovers for up to 5 days in an airtight container.
- Reheating: Reheat slices in the microwave on high setting in 15 to 30-second increments until hot. The entire pan can also be reheated in a 300°F (149°C) oven until the center is warm.
Nutrition Facts
Percent Daily Values are based on a 2000-calorie diet. All nutritional information is based on estimated third-party calculations. Each recipe and nutritional value will vary depending on the brands you use, measuring methods, and portion sizes per household.









David Witte says
I made this breakfast casserole for Mother’s Day Brunch and it was a hit – 5 Star Keeper. I will be making it again! Thank you Jessica!
Jessica Gavin says
Whoo-hoo! Thanks for sharing the breakfast casserole recipe for mother’s day!
Nancy J says
This was easy and delicious. I made a half recipe, just halving the ingredients. Worked well. Baking time was the same.
Jessica Gavin says
Thank you so much! I’m so happy that you were able to tailor the casserole recipe to your needs.
Teresa says
Could one use frozen potato cubes. I have some in the freezer that need to be used
Jessica Gavin says
You can defrost the potatoes, drain, saute, and add them to the breakfast casserole.
Cindy says
Is it possible to freeze this before it is baked so you can prepare ahead of time?
Jessica Gavin says
I think it would be better to bake, cool, and reheat. This works well for individual portions. That way, the ingredients in the casserole won’t sink to the bottom.
RJ Rodgers says
Can you freeze the Breakfast Casserole?
Jessica Gavin says
Yes, you can freeze the casserole. It would be easiest to freeze portioned-out pieces that are individually wrapped so that they can be defrosted easily.
Theodosia says
I love all your recipes and your directions! The breakfast casserole is amazing!
Jessica Gavin says
Thank you so much, Theodosia!
Michelle says
This is delicious. I saute a little baby spinach instead of ham, to make it vegetarian.
Jessica Gavin says
Thank you, Michelle! I love that you added spinach to make it vegetarian. Sauteing the vegetable is key for making the casserole not soggy, great job!
Donna says
This recipe looks delish. What do you think about cottage cheese as a substitute for half and half? (I dont’ have any half and half right now, but do have cottage cheese. Thanks.)
Jessica Gavin says
I think you could give cottage cheese a try, but it the texture of the casserole with be a lot more thick and firm with less moisture and extra protein. It will also be saltier, so I would remove some of the added salt in the recipe. Let me know how it goes!
linda mclain says
My breakfast casserole wont get firm
Jessica Gavin says
Have you checked to make sure that the oven’s temperature is correct? It may be too long? I would continue to bake until the center is firm.
maggie says
Jessica,
I am a loyal follower of your website…love your recipes! This casserole is one of my favorites. I use hash browns from the grocery freezer section when Im short on time. My family devours this casserole in no time! Thank you! 🙂
Jessica Gavin says
Hi Maggie! Thank you for your feedback, so smart to use hash browns as a quick substitution. Happy cooking!
Mandy says
Question….can i use flour instead of cornstarch?
Jessica Gavin says
No, I would not substitute flour for cornstarch, it might give the casserole a raw flour taste. I would omit it if you don’t have any.
Kate says
I’d like to try this but with only 4 eggs so how would I adjust the cornstarch ?
Jessica Gavin says
Add 2 tablespoons cornstarch for 4 eggs.
Mike says
Thank you for the great recipe! Adding the corn starch does noticably change the egg texture. I will try it with different ingredients next time-
Jessica Gavin says
Thank you for your feedback Mike!
Deb says
We had this for dinner last night. Instructions were straightforward and and ingredients readily available. Oh, and it was delish!
Leslie says
Hi Jessica!
Have you tried spinach in this recipe yet? If so, how much and how did it turn out?
P.S.
I love your recipes!
Jessica Gavin says
I would sautee about 3 to 4 cups of fresh spinach, I think it would taste amazing in the breakfast casserole.
Lisa says
My son is on “taper” for swimming. This means he is actually eating healthy breakfasts. I am hoping he can see the benefit of a healthy breakfast. This is the perfect recipe because it is both healthy and tasty. Thanks for sharing
Grace says
I am making this dish today. I have all the ingredients and…why not! Thanks for sharing.
Elizabeth A Mitchell says
Is there a nutritional reason that you peel the potatoes? I would rather use the bag of small Yukon Gold potatoes and just cube them. My sister in law fixed this for our Christmas Eve brunch. We LOVED it.
Jessica Gavin says
No, you can keep the peels on the potato.
Nina says
Hi there. Could I use plain milk vs half/half?
Jessica Gavin says
Yes, whole milk would work great.
Robert Owens says
Being diabetic, I have to watch my carb intake closely. Do you have any suggestions for a replacement for the potatoes in this recipe? This looks fantastic, but potatoes are one of the foods that my doctor has told me to avoid.
Thanks!
Jessica Gavin says
Perhaps some chopped cauliflower would be nice!
Virginia says
Love this! Thank you so much!
Darlene says
Hi Jessica- I made this recipe as written. Perfect. The second time I made it with leftover bits from the fridge keeping the ratio of ingredients to eggs as you suggested. Perfect. The cornstarch is truly the secret ingredient. I love science…and your recipes. Thank you for doing the research and testing. All I need to do is cook!
Desiree Rustulka says
Hi. Do you think this could be made the day before and cooked the next morning?
Jessica Gavin says
Yes, you can prep the recipe and then bake it the next day.
Sandy says
I want to make this for a large gathering that does not have an oven available. Could this be baked in a roaster? This looks so good, cant wait to try it!
Sandy says
Sorry Jessica I missed your first reply.
Yes the roaster can be set at 350. I would like to cook it in the roaster so I wont need to transfer it. I’m worried the texture will be soggy.
Jessica Gavin says
The texture shouldn’t be soggy of it’s cooked through, you may need more time until the egg sets in the center.
Sandy says
Would this work to make in a electric roaster or maybe transfer to a slow cooker to keep warm for a large gathering? There will not be an oven available. Love your detailed instructions and tips. Also the nutritional info is very helpful.
Jessica Gavin says
Hi Sandy- Can the electric roaster be set at 35- degrees? You can definitely keep it warm (slices) in the slow cooker.
Timothy Gist says
I made this for a big feed at work and it was a big hit! I made some minor substitutions … I replaced the ham with some fresh country sausage (I’m not really a ham guy – rinsed the fat off the sausage before adding it in according to the recipe) and I left out the salt (I’m on a low-sodium diet for my heart). I also used red, green and orange peppers to vary the colors in the finished product. I also dropped a spoonful of homemade salsa as a topping. At the end of the day I took home a clean pan!
I can see me making this again many times! I’m thinking of adding maybe 1/4 teaspoon of cumin to get a smokey, earthy flavor, and maybe a small amount of hot sauce to kick it up a notch!
I shared the recipe around the office!
Thanks for the inspiration!
mibs says
Hi Jessica, this is timely as I’ve been looking for a hearty breakfast/light dinner high protein dish. I’m wondering what I might be able to successfully substitute for the half and half. Do you have suggestions for those of us who are lactose intolerant?
Jessica Gavin says
Hi Mibs- I actually just saw some lactose free half-and-half that I used to make a recent batch. You could try that if you are comfortable. Other options could be almond, cashew or oat milk.
Kay Wakeham says
Hi Jessica,
This looks great. I had been thinking about something a I could prepare ahead of time so I could take to work instead of paying high dollars for an omelet in our cafe. I like the idea of switching it around from a kind of “Denver” casserole to an Italian, even Spanish one. I could see even wrapping it a corn or flour tortilla! I plan to try a version this weekend. I will let you know how it goes!
Jessica Gavin says
I’m totally with you on saving money at the work cafe, I made a tray for breakfast and it was a lifesaver and money saver! Let me know what flavors you come up with 🙂
Larry Vaught says
Hey Jessica,
I’m loving your recipes and the completeness of your instructions. One of the other things I REALLY like is that you include the nutritional information per serving. Many recipes do not have this.
Thanks so much!
Larry
Jessica Gavin says
You’re welcome Larry, I’m glad you’re finding the nutritional info helpful!
Jennie Johnson says
Looks Yummy Jessica!!
Thanks
Alison says
This looks amazing, Jessica, can’t wait to try it! Could I freeze individual portions? Thanks!
Jessica Gavin says
Hi Allison- It make be a little watery once you defrost and microwave, but if you are okay with that I would give it a try! It definitely holds up well in portions in the fridge from what I’ve tested and tasted.
Alison says
Thanks!
Karen Duffield says
I am very anxious to try this recipe. I have a breakfast casserole recipe with crescent roll dough which I would love to replace. My comment is that I freeze the individual squares of that recipe and then bake starting in a cold oven set at 350-375 for 20-25 minutes until warmed through. The dry method works very well and will be trying with this recipe. Not the convenience of a microwave but a little forethought yields great fresh baked results. Thanks for great recipes and tips.
Jessica Gavin says
Thank you for sharing your reheating tips, Karen!
Emilie Tribich says
Hi, I’m on Weight Watchers and I’d like to know if I can substitute 0% yogurt for the cream. There is no fat 1/2 & 1/2 available but the amount
in the ingredients is too calorie prohibitive. Any other ideas?
Made your Baked Salmon and it was great! Thanks.
Jessica Gavin says
I think you could give the 0% fat plain yogurt a try, however it might not be as tender of an egg casserole since there is less fat. But I think it would still be tasty! Please let me know if you make the recipe and how it turns out.