Breakfast casseroles show up pretty often in our house with Lindy. You can make several servings in one baking dish, and some versions can even be prepped the night before.
I put together 10 recipes with potatoes, eggs, vegetables, sausage, bread, and salsa. Some recipes are made for a regular morning, some can be prepped ahead, and some I’d happily put on the table when we have guests. So just pick the one that fits your morning best.
You don’t have to treat a recipe like a strict set of rules where one extra handful of greens will ruin everything. If sweet peppers are ripe in summer, they can easily go into the casserole. Got some good bread left over? There’s a recipe for that too. That’s why I make so many different casseroles.
1. Cheesy hashbrown breakfast casserole

Potato casserole with eggs and cheese has been on our weekend breakfast list for a long time. It’s filling, slices nicely into portions, and reheats just fine the next day. And that’s always a big plus for me because I absolutely do not need to make a brand-new breakfast every single morning!
Lindy and I usually use frozen shredded hashbrowns so we don’t have to mess with raw potatoes. They make a firm bottom layer, the meat goes on top, and the eggs and cheese hold everything together as it bakes.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm):
- 30 oz frozen shredded hashbrowns (about 850 g)
- 1 lb breakfast sausage or ground pork (about 450 g)
- 8 large eggs
- 1 ½ cups milk (about 360 ml)
- 2 cups shredded cheddar cheese (about 220 g)
- ½ small onion
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
For casseroles like this, I most often use a 9 × 13-inch glass baking dish with a lid, such as the Pyrex Deep 9×13-Inch Glass Baking Dish with Lid on Amazon. It’s handy for baking, and afterward I can put the leftovers straight into the fridge in the same dish.
How to make it
- First, I preheat the oven to 350°F (175°C) and lightly grease the baking dish. You don’t need much oil, just enough to coat the bottom and sides so the potatoes don’t stick later.
- I finely chop the onion and add it to a skillet with the meat. I break the ground meat into small pieces with a spatula and cook it through. If there’s a lot of fat in the pan, I always drain the excess, otherwise the bottom layer of the casserole can end up too heavy.
- I spread the frozen hashbrowns across the bottom of the baking dish. There’s no need to thaw them first. I try to keep the layer even, but I don’t pack the potatoes down too firmly.
- I spread the cooked meat and onion over the potatoes and distribute it across the whole dish. Then I add about 1 ½ cups of shredded cheese so some of it ends up inside the casserole instead of only on top.
- In a separate bowl, I mix the eggs, milk, salt, and pepper. There’s no need to whisk for long. I just whisk until the yolks and whites are completely combined with the milk.
- I slowly pour the egg mixture across the entire baking dish, making sure it reaches both the edges and the center. Then I spread the remaining cheese over the top.
- I put the baking dish in the oven for about 45–55 minutes. Toward the end, I check the center with a knife. If there’s no liquid egg mixture inside, it’s ready to come out. After baking, I let the casserole sit for 5–10 minutes. It firms up a little during that time, and the slices are much easier to move onto a plate.
You can experiment a little with the cheese. I usually use cheddar, but sometimes I mix it with Monterey Jack. If there’s a sweet pepper or a few handfuls of spinach left in the fridge, those can go in too. I quickly sauté mushrooms first because they release too much water when they’re added raw.
And with the potatoes, it’s better not to overdo it either. The hashbrowns are the base, so an even layer across the bottom of the baking dish is enough. If you use too many potatoes, they’ll overpower the other ingredients and the casserole will turn out denser and heavier.
This breakfast casserole works well for a family breakfast. I put the baking dish in the middle of the table, cut it into pieces, and everyone can take care of their own serving from there. Leftovers can stay in the fridge for a few days and be reheated one portion at a time.
2. Biscuit and gravy breakfast bake

Biscuits with thick sausage gravy are one of those classic American breakfasts that are easy to turn into a big casserole. The pieces of dough bake together with sausage, creamy gravy, and eggs, so you don’t have to assemble every serving separately.
Lindy and I usually make this casserole when we need several servings at once. It’s a pretty filling breakfast with soft biscuits, savory sausage, thick gravy, and eggs. You really don’t need another two or three dishes on the side.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm):
- 1 can refrigerated buttermilk biscuits (16 oz) (450 g)
- 1 lb breakfast sausage (about 450 g)
- ¼ cup butter (about 55 g)
- ¼ cup all-purpose flour (about 30 g)
- 2 ½ cups milk (about 600 ml)
- 6 large eggs
- ½ cup milk for the egg mixture (about 120 ml)
- 1 cup shredded cheddar cheese (about 110 g)
- ½ teaspoon salt
- ½ teaspoon freshly ground black pepper
How to make it
- First, I preheat the oven to 350°F (175°C) and lightly grease the baking dish. I cut the biscuit dough into small pieces and spread about half of them across the bottom, leaving a little space between each piece. They’ll expand quite a bit as they bake.
- I cook the sausage over medium heat, breaking it into small pieces with a spatula. Once the meat is fully cooked and lightly browned, I transfer it to a plate. I leave a little of the fat in the skillet because it becomes part of the gravy base.
- In the same skillet, I add the butter, then sprinkle in the flour and stir for about a minute. The flour should combine with the fat and warm through without browning. Then I gradually pour in 2 ½ cups of milk, whisking constantly.
- I keep cooking the gravy for a few minutes until it becomes noticeably thicker. Then I return the sausage to the skillet, add black pepper, and taste before adding salt. Breakfast sausage is already fairly salty, so I don’t add all the salt right away.
- I spread the finished gravy over the pieces of dough in the baking dish. The gravy should be quite thick, although it will still settle a little between the biscuit pieces as everything bakes.
- In a separate bowl, I mix the eggs with ½ cup of milk and a small amount of salt. I pour the mixture over the sausage gravy, trying to distribute it across the whole dish, then sprinkle the shredded cheddar on top.
- I cut the remaining biscuit dough into pieces and arrange them over the top. I leave some space between them because the biscuits will rise and get much bigger in the oven.
- I bake it for about 35–45 minutes. The biscuit pieces on top should be nicely browned, and the eggs in the center should be fully set. If the biscuits start getting too dark too quickly, I loosely cover the dish with foil for the last 10–15 minutes.
Don’t make the gravy too thin. It needs to be thick before it goes into the baking dish, otherwise the dough underneath will absorb too much liquid and stay soft. I usually drag a spatula across the bottom of the skillet, and if the sauce leaves a trail for a second, it’s thick enough.
I don’t hold back on the black pepper either. In classic sausage gravy, you should be able to taste it, so freshly ground pepper works much better than fine pre-ground pepper. You can also leave out the cheese if you want the casserole to stay closer to traditional biscuits and gravy.
This casserole is much more filling than a simple breakfast of eggs or cereal, so one large baking dish makes several solid servings. Leftovers can go into the fridge and be reheated the next day, although the biscuits won’t stay quite as crisp on top.
3. Overnight tater tot casserole

In the evening, I layer all the ingredients in the baking dish, pour over the egg mixture, cover it, and put it in the fridge. In the morning, all that’s left to do is preheat the oven and put the casserole in to bake.
Lindy and I sometimes make this casserole the night before when we know the morning will be busy. The tater tots hold their shape well, the eggs bind the filling together, and the cheese browns on top and gives you that crust I always leave the casserole in the oven an extra couple of minutes for.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm):
- 1 bag frozen tater tots, about 32 oz (900 g)
- 1 lb breakfast sausage (about 450 g)
- 8 large eggs
- 2 cups milk (about 480 ml)
- 2 cups shredded cheddar cheese (about 220 g)
- ½ small onion
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
How to make it
- First, I finely chop the onion and cook it with the sausage. I break the meat into small pieces with a spatula and cook it over medium heat until fully done. If there’s a lot of fat left in the skillet, I drain it before putting the casserole together.
- I lightly grease the baking dish and spread the frozen tater tots across the bottom. I place them fairly close together, but I don’t try to squeeze in another row at any cost. One even layer works better.
- I spread the cooked sausage and onion over the potatoes. Then I add about half of the shredded cheese so some of it ends up inside the casserole instead of only on top.
- In a separate bowl, I mix the eggs, milk, salt, and pepper. There’s no need to whisk for long. I just mix everything well enough that there are no streaks of egg white left.
- I slowly pour the egg mixture into the baking dish. It should run between the potatoes and meat and spread evenly across the bottom. Then I add the remaining cheese on top.
- I cover the baking dish and refrigerate it overnight, usually for 8–12 hours. There’s nothing else you need to do with the potatoes during this time. They go into the dish frozen and gradually thaw while sitting in the casserole.
- In the morning, I take the casserole out of the fridge while the oven preheats to 350°F (175°C). If I’m using a glass baking dish, I let it sit at room temperature for about 20 minutes so I’m not putting very cold glass straight into a hot oven.
- I bake it for about 50–60 minutes. The eggs in the center should be fully set, and the potatoes on top should be nicely browned. If the cheese starts getting too dark before the casserole is done, I loosely cover the dish with foil.
It’s better to leave the tater tots whole. If you crumble them, the bottom layer becomes denser and absorbs more of the egg mixture. Whole pieces keep their structure and stay more distinct after baking.
You can add a little chopped sweet pepper or green onion. I’d cook vegetables with a lot of moisture first so they don’t release extra liquid into the casserole overnight.
For me, this is the kind of breakfast that fits a slow morning at home. I put the dish in the oven, make coffee, get on with a few things around the house, and about an hour later breakfast is ready for everyone.
4. Crescent roll breakfast layers

With crescent roll dough, the base turns out soft, slightly flaky, and holds the egg filling well. Lindy and I sometimes use ready-made refrigerated dough when we’re not planning to spend a ton of time in the kitchen in the morning. There’s absolutely no need to make the dough from scratch.
For this casserole, I roll the dough out right across the bottom of the baking dish, then layer the eggs, sausage, and cheese on top. It turns into something between a big breakfast and a savory pie.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm):
- 2 packages refrigerated crescent roll dough, 8 oz each (225 g each)
- 1 lb breakfast sausage (about 450 g)
- 8 large eggs
- 1 cup milk (about 240 ml)
- 1 ½ cups shredded cheese (about 165 g)
- ½ small onion
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
A small silicone pastry roller makes ready-made dough easier to work with. It’s handy for rolling the dough directly in the baking dish and pressing the seams between the pieces together.
How to make it
- First, I preheat the oven to 375°F (190°C) and lightly grease the baking dish. I open the packages of dough and spread it across the bottom, overlapping the pieces slightly. I press the perforations between the triangles together with my fingers so I get one solid layer.
- I cook the sausage with the finely chopped onion. I break the meat into small pieces with a spatula and cook it until it’s fully browned. I drain off the excess fat before transferring the meat onto the dough.
- I spread the sausage across the whole surface and sprinkle about half of the cheese over it. I try not to pile the filling too heavily in the center, otherwise the edges will cook faster than the middle.
- I mix the eggs with the milk, salt, and pepper. I whisk it for about a minute. We don’t need a lot of foam, just a smooth, even mixture.
- I carefully pour the eggs over the sausage layer. I do it gradually so the liquid has time to spread across the baking dish instead of collecting along one edge.
- I add the remaining cheese on top and put the baking dish in the oven for about 30–35 minutes. The edges of the dough should turn golden, and the center should be fully baked. If the middle still moves noticeably when I gently shake the dish, I leave the casserole in for a few more minutes.
- After baking, I let it rest for about 10 minutes. During that time, the egg layer firms up, and the bottom layer of dough is easier to cut without pulling half the filling along with the knife.
After dinner, we often have a little roasted pepper, green onion, or a couple of pieces of bacon left over. Lindy usually puts those leftovers into a separate container, and some of them may end up in the casserole the next morning. I don’t add too much, though. The dough is fairly delicate, and a heavy, wet filling makes it harder for the bottom to bake through.
I always try to seal all the seams in the dough well before adding the filling. Eggs can seep through small gaps and run underneath the base, leaving you with a mix of dough and baked egg instead of an even bottom layer.
Breakfasts like this have become a regular part of life on our little homestead. Lindy puts the coffee on, I take the casserole out of the oven… It’s simply nice to put something hot and homemade on the table in the morning and not rush anywhere for at least the first half hour of the day.
5. Healthy veggie-packed casserole

In summer, the vegetables in our fridge practically never run out. Zucchini from the garden, sweet peppers, greens, sometimes broccoli — at some point, it becomes obvious that part of the harvest needs to go straight into the kitchen. This casserole lets me use several vegetables at once while still being a filling breakfast, not just a bowl of greens pretending to be one.
Lindy likes to add extra spinach, while I keep an eye on the zucchini. It releases a lot of water, and if I add it raw, I really don’t like the result. So I cook the vegetables a little first and only then mix them with the eggs.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm):
- 10 large eggs
- 1 cup milk (about 240 ml)
- 1 small zucchini, about 8 oz (225 g)
- 1 red sweet pepper
- 1 cup small broccoli florets (about 90 g)
- 2 cups fresh spinach (about 60 g)
- ½ small onion
- 1 ½ cups shredded cheese (about 165 g)
- 1 tablespoon olive oil
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
How to make it
- I preheat the oven to 350°F (175°C) and lightly grease the baking dish. While the oven heats up, I cut the zucchini, pepper, and onion into small pieces. I divide the broccoli into very small florets so it has enough time to cook with the eggs.
- I start with the onion, pepper, and broccoli in the skillet. I add the olive oil and cook them for about 4–5 minutes over medium heat. The vegetables shouldn’t become completely soft because they’ll keep cooking in the oven.
- I add the zucchini for the last few minutes. It cooks faster than the other vegetables and starts releasing water pretty quickly. If any liquid collects in the bottom of the skillet, I let it cook off before taking the vegetables off the heat.
- I add the spinach at the very end. It only needs about a minute. As soon as the leaves wilt down, I take the skillet off the heat and let the vegetables cool slightly.
- I mix the eggs with the milk, salt, and pepper. Then I add about 1 cup of shredded cheese and mix again. I add the vegetables to the egg mixture too and move them around with a spoon so the broccoli or pepper doesn’t end up concentrated in one spot.
- I pour everything into the prepared baking dish and add the remaining cheese on top. If a few pieces of vegetables stay on the surface, I leave them there — they’ll brown slightly in the oven.
- I bake it for about 35–45 minutes. The center should be fully set. After baking, I let the casserole sit for 5–10 minutes, then cut it into portions.
You can change the vegetables with the seasons. In spring, I use spinach and green onions, in summer zucchini and peppers, and in fall I might add a little squash. In our kitchen, casseroles like this often depend on what the garden is producing right now.
Be a little careful with vegetables that hold a lot of water. Zucchini, mushrooms, and fresh tomatoes are better cooked first to remove some of the extra moisture. Once, I got a little too generous with the zucchini, and the casserole turned out much more watery than it should have. We ate it, of course. But since then, I always cook the zucchini for a bit first.
In summer, the garden often decides what goes into breakfast. Lindy might bring in spinach or green onions while I’m cooking, and some of those greens go straight into the casserole. I like cooking with food we grew ourselves and just brought into the house.
6. Crockpot sausage and egg casserole

I cook this casserole in the crockpot on low. While it cooks, I can take care of things around the house, head outside, or just have my coffee without rushing.
For our home kitchen, the slow cooker turned out to be more useful than I ever expected. While Lindy takes care of things around the house in the morning, I can check on the animals or head out to the property, and breakfast keeps cooking without us. I’ve come to appreciate kitchen tools like this a lot more — simple and genuinely useful in everyday life.
Ingredients
For a slow cooker of about 6 quarts (5.7 L):
- 1 lb breakfast sausage (about 450 g)
- 10 large eggs
- 1 bag frozen shredded hashbrowns, about 20 oz (570 g)
- 1 ½ cups shredded cheese (about 165 g)
- ¾ cup milk (about 180 ml)
- ½ small sweet pepper
- 3 green onions
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the crockpot
A regular 6-quart slow cooker, like the Crock-Pot 6 Quart Slow Cooker on Amazon, works well. A crockpot this size is plenty for this amount.
How to make it
- First, I cook the sausage in a skillet. I break it into small pieces with a spatula and cook it all the way through. I drain the fat so it doesn’t collect at the bottom of the slow cooker later.
- I grease the crockpot with a thin layer of oil. Then I spread about half of the frozen hashbrowns across the bottom. There’s no need to thaw the potatoes first.
- I add the first layer of filling. Over the potatoes, I add half of the sausage, some of the chopped sweet pepper, green onion, and about a third of the cheese. Then I repeat the potato and sausage layers one more time.
- I mix the eggs and milk separately. I add the salt and black pepper and whisk everything well until the mixture is smooth.
- I pour the egg mixture over all the layers. I pour it slowly across the whole surface instead of just into the center. Then I spread the remaining cheese over the top.
- I cover it and cook on low for 6–7 hours. I check the casserole a little earlier if I’m using a slow cooker that runs hotter. The eggs in the center should be fully cooked, but you don’t want to leave it too long either — the edges will start drying out first.
- I turn off the slow cooker and let the casserole sit uncovered for 10 minutes. It firms up a little, and the servings are easier to lift out with a wide spatula.
Just don’t open the lid every half hour out of curiosity. Every time you do, some of the built-up heat escapes and the cooking time gets longer. It’s better to check it for the first time closer to the lower end of the suggested cooking time.
Lindy sometimes tops her serving with green onions after cooking. In winter, we keep a little greenery growing on the windowsill, so we can snip fresh green onions right before breakfast. You can add a little hot sauce straight to your plate and keep the main casserole mild — that makes it easier when people at the table like different levels of heat.
The slow cooker has become one of those things we’ve genuinely made part of our everyday kitchen. It doesn’t replace a skillet or the oven, but it changes the whole rhythm of cooking. And I like it when homemade food fits around our schedule instead of the other way around.
7. Classic breakfast casserole with bread cubes

Bread cubes make this casserole very different from the potato versions. They soak up the eggs and milk, stay soft inside after baking, while the pieces on top get lightly browned. And it also gives you a good use for bread that’s been sitting in the kitchen for a couple of days and starting to dry out.
That happens pretty regularly in our house. Lindy might bake or buy a good loaf, we eat half of it fresh, and a couple of days later no one really wants what’s left. For a casserole, slightly stale bread actually works better than fresh bread because it absorbs the liquid without immediately turning into a soft mush.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm)
- 6 cups bread, cut into cubes (about 300–350 g)
- 1 lb breakfast sausage (about 450 g)
- 8 large eggs
- 2 cups milk (about 480 ml)
- 1 ½ cups shredded cheese (about 165 g)
- ½ small onion
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
How to make it
- I prepare the bread. I cut it into cubes about 1 inch (2.5 cm) each. If the bread is very fresh and soft, I spread the pieces on a baking sheet and dry them out for about 10 minutes at 300°F (150°C). They don’t need to brown much.
- I cook the sausage with the onion. I break the meat into small pieces with a spatula and cook it until there are no pink spots left. Then I drain off the excess fat and set the sausage aside for a bit.
- I put the bread into the greased baking dish. I spread the cubes evenly and don’t press them down. There should be small spaces between the pieces for the egg mixture to flow into later.
- I add the sausage and cheese. I distribute the meat between the bread cubes, then sprinkle about one cup of cheese over the top. I gently mix everything a few times with my hands or a large spoon so the filling doesn’t stay only on the surface.
- I mix the eggs with the milk. I add the salt and pepper, then whisk everything well. I slowly pour the mixture across the whole baking dish, moving from one side to the other so the bread soaks it up more evenly.
- I let the casserole sit for 15–20 minutes. During this time, the bread starts absorbing the liquid. If a few cubes on top are still completely dry, I gently press them down with a spoon.
- I add the remaining cheese and bake. I put the dish into an oven preheated to 350°F (175°C) for about 40–45 minutes. The top should be browned, and the egg mixture in the center should be fully cooked.
You can use different kinds of bread. White bread gives you a softer texture, while sourdough bread adds a slight tang and stays firmer after baking. Very airy sandwich bread absorbs liquid faster, so with that kind I either reduce the milk just a little or dry the bread out more thoroughly first.
I still hate throwing out day-old bread. We’ve gotten used to finding another use for it. Some becomes croutons, some goes into breadcrumbs, and a few thick slices can wait for breakfast. Little habits like this fit really well with the way Lindy and I try to run our home — using food wisely and throwing it away as rarely as possible.
8. Loaded potato breakfast bake

Potato breakfasts show up pretty often in our house, especially during the cooler months. They’re filling and work well for a slow morning when coffee and toast just don’t feel like enough.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm)
- 2 lb potatoes (about 900 g)
- 8 large eggs
- 1 cup milk (about 240 ml)
- 8 slices bacon
- 2 cups shredded cheddar cheese (about 220 g)
- 4 green onions
- ½ teaspoon salt
- ¼ teaspoon black pepper
- ½ teaspoon garlic powder
- 1 tablespoon olive oil
- sour cream for serving
- a little oil for greasing the baking dish
How to make it
- I prepare the potatoes. I preheat the oven to 400°F (205°C). I wash the potatoes well and cut them into cubes about ¾ inch (2 cm). I usually leave the skin on if it’s thin and clean.
- I roast the potatoes until the edges are browned. I toss the pieces with olive oil, garlic powder, some of the salt, and pepper. Then I spread them on a baking sheet and roast for about 25–30 minutes, turning them once while they cook. The potatoes should be almost done but still hold their shape.
- I cook the bacon. While the potatoes are in the oven, I cook the bacon until crisp. Then I transfer it to a paper towel and, once it cools, cut or break it into small pieces.
- I transfer the potatoes to the baking dish. I lower the oven temperature to 350°F (175°C). I lightly grease the dish, add the potatoes, then spread most of the bacon, chopped green onions, and about 1 ½ cups of cheese over the top.
- I mix the eggs with the milk. I add the remaining salt and whisk everything well a few times. Then I slowly pour the mixture over the potatoes, trying to distribute it across the whole surface.
- I add the top layer. I sprinkle on the remaining cheese and bacon. I keep some of the green onions fresh to add after baking.
- I bake it for 30–35 minutes. Toward the end, I check the center of the dish. The eggs should be fully set, while the potatoes should still hold their shape. After baking, I let the casserole sit for about 5 minutes.
If you already have roasted potatoes left over from last night’s dinner in the fridge, you can skip the first step. I cut them into pieces and transfer them straight to the baking dish. We do this with leftovers pretty often. In our kitchen, yesterday’s side dish can easily become part of today’s breakfast.
That’s probably one reason casseroles like this have become such a regular thing for Lindy and me. They let us make good use of what we already have at home instead of starting every meal with a whole new set of ingredients. And I’m glad that habit has become completely natural for us over time.
9. Spinach and mushroom casserole

In our house, these two combinations—spinach and mushrooms—are often found in the same dish, and for good reason. Spinach has a mild flavor, and mushrooms make breakfast more filling, even without sausage or bacon. Lindy prefers these vegetable-based breakfasts to the meatier ones, so this casserole shows up on our table pretty regularly.
And this casserole doesn’t feel heavy at all. After breakfast, I can head outside and get some work done around the property instead of wanting to lie back down on the couch.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm)
- 10 large eggs
- 8 oz fresh mushrooms (about 225 g)
- 5 oz fresh spinach (about 140 g)
- 1 cup milk (about 240 ml)
- 1 ½ cups shredded cheese (about 165 g)
- ½ small onion
- 1 tablespoon olive oil
- ½ teaspoon salt
- ¼ teaspoon black pepper
- a little oil for greasing the baking dish
How to make it
- I preheat the oven to 350°F (175°C). I lightly grease the baking dish and set it aside while I prepare the vegetables.
- I slice the mushrooms and chop the onion. I cut the mushrooms into slices and the onion into small cubes. I don’t slice the mushrooms too thin, otherwise there’s barely anything left after cooking.
- I cook the mushrooms until the liquid evaporates. First, I heat the skillet with the olive oil, then add the mushrooms and onion. I cook them over medium heat for about 6–8 minutes. The mushrooms release quite a bit of water at first, and I wait until almost all of it cooks off.
- I add the spinach at the very end. I stir it into the mushrooms and cook for about another minute. As soon as the leaves wilt down, I take the skillet off the heat. There’s no reason to cook the spinach any longer because it still has time in the oven.
- I mix the eggs with the milk. I add the salt, pepper, and about 1 cup of cheese, then whisk until smooth.
- I transfer the vegetables to the baking dish. I spread the mushrooms and spinach across the bottom, then pour in the egg mixture. I sprinkle the remaining cheese over the top.
- I bake it for 30–35 minutes. I check the center toward the end. The egg mixture should be fully set, and the top should be lightly browned. After baking, I let the casserole sit for a few minutes before slicing.
The mushrooms really do need to cook well first. If you take them off the heat too early, that water ends up in the casserole and the egg layer turns loose and wet. The same rule applies to frozen spinach. It needs to be fully thawed first, then squeezed really well to remove the extra moisture.
Lindy sometimes adds a little fresh greenery to her serving after cooking. I usually leave mine as it is because the mushrooms and cooked onion already have plenty of flavor.
Vegetable breakfasts became a normal part of our home cooking back in Idaho, when we started growing more of our own greens. Not every harvest has to turn into a big dinner or something preserved for winter. Sometimes a few handfuls of fresh leaves simply become a good addition to breakfast the next morning.
10. Southwestern breakfast casserole with salsa

By the end of summer, we usually have more tomatoes and peppers than we can eat fresh. Lindy turns some of them into homemade salsa. She makes a small jar, keeps it in the fridge, and for the next few days we add the sauce to eggs, potatoes, or meat.
Homemade salsa works great for this casserole, but you absolutely don’t have to make it just for this recipe. A good store-bought salsa works too. I just make sure it’s fairly thick and not swimming in too much tomato juice.
Ingredients
For a 9 × 13-inch baking dish (23 × 33 cm)
- 10 large eggs
- 1 cup thick tomato salsa (about 240 ml)
- 1 cup canned black beans, rinsed and drained (about 170 g)
- 1 cup corn (about 165 g)
- 1 small red sweet pepper
- 1 ½ cups shredded cheese (about 165 g)
- ½ cup milk (about 120 ml)
- 3 green onions
- ½ teaspoon ground cumin
- ½ teaspoon smoked paprika
- ¼ teaspoon salt
- a little oil for greasing the baking dish
- fresh cilantro for serving
For homemade salsa, I use a small vegetable chopper, like the OXO Good Grips Vegetable Chopper on Amazon. When I need to chop tomatoes, onion, and pepper at the same time, it makes the job noticeably faster.
If we make the salsa at home
For a small batch, you’ll need
- 2 ripe tomatoes
- ¼ small onion
- ½ jalapeño
- a small handful of cilantro
- juice of ½ lime
- a pinch of salt
I finely chop everything and mix it together. Then I let the salsa sit for about 10 minutes and drain off some of the juice that comes out. For the casserole, you’ll need about 1 cup of prepared salsa.
Lindy usually keeps a little more jalapeño in her portion. I prefer a milder heat, so sometimes we add some of the pepper straight to our plates instead.
How to make it
- I prepare the baking dish and oven. I preheat the oven to 350°F (175°C) and lightly grease the baking dish. I rinse the beans under cold water and leave them in a colander. The less liquid that goes into the dish with the beans, the better.
- I chop the sweet pepper and green onions. I cut the pepper into small cubes and slice the green onions into thin rings. I set a little onion aside for serving after baking.
- I add the vegetables, beans, and corn. I spread them across the bottom of the baking dish in a fairly even layer. There’s no need to stir or press anything down too much.
- I make the egg mixture. I mix the eggs with the milk, cumin, smoked paprika, and salt. Then I add about 1 cup of shredded cheese and whisk again.
- I pour the eggs into the baking dish. I do it gradually across the whole surface so the mixture runs between the beans and vegetables. Then I spoon the salsa over the top in small amounts. I wouldn’t mix it completely into the eggs, otherwise the tomato and pepper flavor gets a little lost.
- I sprinkle on the remaining cheese. Then I put the baking dish straight into the preheated oven.
- I bake it for about 35–40 minutes. Toward the end, I gently move the dish. The center shouldn’t still be liquid. After baking, I let the casserole sit for a few minutes, then add fresh cilantro and the remaining green onions.
With store-bought salsa, I look at the thickness first. Some versions are almost like tomato juice with chunks of vegetables. It’s better to drain those a little. Thick salsa stays noticeable in the finished casserole and doesn’t water down the eggs.
It’s easier to let everyone control the heat for themselves. Lindy might add more jalapeño, while I usually take another spoonful of salsa. That way, the whole casserole doesn’t have to be spicy just because one person at the table likes more heat.
By late summer, tomatoes are sitting on our kitchen counter, peppers are still ripening, and the cilantro needs to be cut before it completely goes to flower. I like using the harvest this way while the vegetables are still fresh and there’s no need to can or freeze them.
Morning casserole
The 10 breakfast casserole recipes turned out pretty different from one another, and I wouldn’t even try to choose one “best” recipe. Lindy and I often have different favorites. That’s probably why new versions of familiar dishes keep showing up in our kitchen.
Which casserole do you like best? Tell me in the comments which one you’d make first. I’d love to hear what happens in your kitchen, how you make yours, and what little tricks you use.