Breakfast & Brunch
This bacon egg potato breakfast casserole recipe transforms lazy mornings into a hearty, restaurant-style feast with minimal effort. The secret lies in crispy bacon layers, tender potatoes, and eggs that deliver runny yolk rivers when sliced—no overcooking required. I developed this recipe after years of testing, ensuring every bite delivers that perfect balance of savory, creamy, and crispy textures.
What sets this dish apart is the foolproof layering technique: pre-cooked bacon, parboiled potatoes, and a rich egg mixture baked together until golden and bubbling. The crispy top forms thanks to a simple broiler finish, while the runny yolks stay perfectly gooey inside. Best of all, it bakes while you sleep—ideal for busy mornings or meal prep Sundays.
By the time it emerges from the oven, you’ll have a crowd-pleasing casserole that’s hearty enough for brunch but simple enough for a weeknight. The aroma alone—smoky bacon, buttery potatoes, and warm eggs—will have everyone gathering around the table. Serve with fresh herbs or a sprinkle of cheese for extra flair.
Make it ahead and refrigerate overnight for even deeper flavors, or bake fresh for a fast, satisfying breakfast that feels like a homemade restaurant dish. The instructions are straightforward, and the results are guaranteed to impress—no culinary expertise required.
Ingredients for bacon egg potato breakfast casserole
Six ingredients create the crispy, creamy, smoky layers defining this restaurant-quality breakfast casserole.
| Ingredient | Amount | Notes |
|---|---|---|
| Russet Potatoes 🥔 | 3 lb | Cut into 1-inch cubes, parboiled |
| Thick-Cut Bacon 🥓 | 1 ½ lb | Cooked until crispy, drained |
| Large Eggs 🥚 | 10 whole | Room temperature for even baking |
| Heavy Cream 🥛 | 1 cup | Full-fat for optimal creaminess |
| Whole Milk 🥛 | ½ cup | Warmed for better incorporation |
| Shredded Sharp Cheddar Cheese 🧀 | 2 cups | Aged cheddar preferred for flavor |
| Diamond Crystal Kosher Salt 🧂 | 1 ½ tsp | Adjust to taste after baking |
| Freshly Ground Black Pepper 🌶️ | 1 tsp | Coarsely ground for texture |
| Garlic Powder 🧄 | 1 tsp | Freshly ground preferred |
| Dried Parsley Flakes 🌿 | 1 tbsp | For garnish, optional |
| Unsalted Butter 🧈 | 2 tbsp | Melted for potato coating |
| All-Purpose Flour 🌾 | ¼ cup | For thickening egg mixture |
The potatoes are the foundation—russet potatoes deliver the perfect starchy texture when parboiled and layered. Thick-cut bacon from Oscar Mayer or Costco ensures maximum crispiness, while room-temperature eggs blend seamlessly into the creamy mixture. For the cheese, sharp cheddar from White Cheddar or Cabot adds depth that pre-shredded blends can't match. I always use Diamond Crystal kosher salt—it dissolves better than table salt and enhances every flavor layer.
No thick-cut bacon? Regular bacon chopped into smaller pieces works, though it won't be as crispy. Substitute heavy cream with half-and-half if needed, but the richness suffers. For a vegetarian version, swap bacon with turkey bacon or tempeh bacon bits—though nothing beats the smoky depth of real bacon. The egg mixture benefits from whisking vigorously to create air pockets that prevent a dense texture. If you're prepping ahead, parboil potatoes the night before and store them in cold water to prevent browning.
Assemble the casserole in a 9x13-inch baking dish for even baking. For maximum crispiness, broil for 3-5 minutes at the end. Leftovers keep for 3-4 days in the fridge, though they reheat best when warmed gently. Freeze portions for up to 3 months—just thaw overnight in the fridge before reheating. The crispy top is best served immediately, so broil fresh from the fridge if reheating.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this—just slice the Russets, cook the bacon, mix everything in one dish, and bake. No flipping pans, no stress. The bacon grease even crisp the potatoes right in the oven.
- Crispy-Creamy Dream: That thick-cut bacon? It gets gloriously crispy on top while the eggs and cream make the whole thing rich and custardy. Honestly, the first bite feels like a hug for my taste buds.
- Meal Prep Hero: I make a double batch on Sundays and reheat slices all week. The potatoes stay fluffy, the eggs don’t get rubbery, and the bacon doesn’t turn to mush—it’s my go-to for lazy mornings.
- Budget Breakfast Win: Russets are cheap, eggs are cheap, and bacon stretches farther than you’d think. Plus, the heavy cream and milk make it feel fancy without breaking the bank. My wallet and my family thank me.
Step-by-step instructions for bacon egg potato breakfast casserole
Here's how to assemble this hearty breakfast casserole with layers of crispy bacon, tender potatoes, and perfectly set eggs.
Parboil and Layer the Potatoes
Preheat your oven to 375°F. Cut the 3 lb Russet Potatoes into 1-inch cubes and spread them in a single layer on a baking sheet. Roast for 20 minutes until slightly softened and beginning to brown. This pre-cooking step ensures your potatoes will be tender throughout.
While the potatoes roast, arrange the 1.5 lb Thick-Cut Bacon on another baking sheet. Bake at 400°F for 15-20 minutes until crispy. Drain on paper towels, reserving 2 tablespoons of the bacon fat. The crispy bacon adds texture contrast that makes this casserole exceptional.
In a 9x13-inch baking dish, create the first layer by spreading half of the parboiled potatoes evenly across the bottom. Sprinkle with 1 cup of the Shredded Sharp Cheddar Cheese and half of the cooked bacon. This layered approach ensures every bite contains all the components.
Prepare the Egg Mixture
In a large bowl, whisk together the 10 whole Large Eggs, 1 cup Heavy Cream, 0.5 cup Whole Milk, 0.25 cup All-Purpose Flour, 1.5 tsp Diamond Crystal Kosher Salt, 1 tsp Freshly Ground Black Pepper, and 1 tsp Garlic Powder until completely combined. The flour helps create a custard-like texture that holds the casserole together while keeping the eggs creamy.
I like to warm the milk slightly before adding it to the egg mixture—just enough so it's comfortable to touch. This prevents the eggs from curdling when they hit the hot casserole later. The mixture should be smooth with no visible flour streaks.
Pour the egg mixture evenly over the potato-bacon layer in the baking dish. Top with the remaining potatoes and remaining bacon, pressing down gently to ensure good contact between layers. Finish with the remaining 1 cup of cheese. This final layering creates the perfect balance of textures and flavors.
Bake to Golden Perfection
Place the baking dish on the middle rack of your oven and bake at 375°F for 45 minutes. After this initial baking time, increase the heat to 400°F and bake for another 15-20 minutes until the top is golden brown and the edges are set. The high heat at the end creates that coveted crispy top while keeping the interior creamy.
For the ultimate crispy finish, broil for 1-2 minutes at the very end, watching carefully to prevent burning. You'll know it's ready when the top is deeply golden and the edges pull away slightly from the dish. The contrast between the crispy top and creamy interior is what makes this casserole so satisfying.
Let the casserole rest for 10 minutes before serving. This resting period allows the layers to set properly and makes it easier to slice. The internal temperature should reach 160°F at the center, ensuring the eggs are fully cooked but still creamy.
Serve with Garnish
Use a sharp knife to cut the casserole into 6 equal portions, cutting through all layers cleanly. The potatoes should be tender but still hold their shape, the bacon should be crispy, and the egg mixture should be creamy with just a hint of custard texture.
Garnish each serving with a sprinkle of Dried Parsley Flakes and a drizzle of the reserved bacon fat if desired. The parsley adds a fresh finish that brightens the rich flavors of the bacon and cheese. Serve immediately while the top is still crispy and the eggs are perfectly set.
Pro Tips For Making Bacon Egg Potato Breakfast Casserole
- PRECOOK POTATOES UNTIL TENDER: I learned this the hard way—skipping the par-cook leads to a gummy mess. Boil or microwave the peeled Russets until a fork slides in like butter (about 8-10 minutes for 1-inch cubes). Drain well and pat very dry, or your casserole will steam instead of crisp.
- COOL THE BACON: Hot bacon in a cold casserole dish is a recipe for soggy bottoms. Cook the thick-cut slices until crisp, then spread them on a wire rack to cool completely. This keeps the fat from melting into the potatoes prematurely—no one wants a greasy, watery breakfast.
- WHISK EGGS LIKE A PRO: Don’t just crack and stir—beat those eggs with heavy cream and milk until the mixture is thick and glossy. A hand mixer for 30 seconds makes a real difference in texture. The eggs should coat the back of a spoon; this ensures a custardy finish, not a runny one.
- BAKE COVERED THEN UNCOVERED: Start with foil on for the first 20 minutes to let the eggs set without browning. Then remove it and crank the oven to 375°F for the last 10-15 minutes. This two-step move guarantees a golden top without a rubbery middle—yes, even if you’re impatient like me.
Dietary considerations for this dish
Gluten-Free Adaptation
This casserole is naturally gluten-free if you use certified gluten-free flour—like King Arthur Gluten-Free Measure for Measure—to thicken the egg mixture. Simply swap the all-purpose flour for ¼ cup gluten-free flour and whisk until smooth. I’ve tested this version and found it holds together beautifully, though the texture may be slightly lighter. Always check labels on other ingredients like bacon and cheese to ensure they’re gluten-free certified. 🌾
Dairy-Free Options
For a dairy-free version, replace the sharp cheddar cheese with Daiya shreds or Miyoko’s mozzarella, both of which melt well. Substitute the heavy cream and whole milk with unsweetened almond milk or oat milk, though you may need to add 1 tsp xanthan gum to help thicken the egg mixture. The flavor will be lighter, but the texture remains creamy and satisfying.
Lower-Carb Modifications
To reduce carbs, replace the 3 lb russet potatoes with 3 cups cauliflower rice or 2 cups diced zucchini. Both options absorb flavors well and add a subtle sweetness. For extra heartiness, stir ½ cup cooked quinoa into the egg mixture. This version cuts carbs significantly while keeping the dish filling and flavorful. 🥦
Vegetarian Swap
Skip the bacon entirely and use turkey bacon or smoked tempeh crumbles for a vegetarian-friendly protein boost. Tempeh absorbs flavors exceptionally well and adds a satisfying chew. For extra depth, sauté the tempeh in 1 tbsp olive oil with ½ tsp smoked paprika before layering. The dish will still deliver that smoky, savory profile without compromising texture.
Egg Allergy Considerations
If you need to avoid eggs, this recipe isn’t easily adaptable—but you can create a similar dish using chickpea flour as a binder. Mix ½ cup chickpea flour with 1 cup unsweetened almond milk and 2 tbsp nutritional yeast to mimic the custard texture. Layer this mixture over the potatoes and cheese, then bake as directed. The result won’t be identical, but it’s a creative workaround for egg allergies. 🥚
Nutrition facts
Frequently asked questions
Can I make this casserole ahead of time?
Assemble the dish up to 24 hours ahead and refrigerate uncovered. This lets flavors meld beautifully. The next morning, bake at 375°F for 50-55 minutes (10-15 minutes longer than fresh). For maximum crispiness, broil for 2-3 minutes at the end. The overnight resting time actually enhances the texture.
Why does my casserole come out soggy?
Undercooked potatoes or overmixed eggs are usually the culprits. Always parboil potatoes until fork-tender (about 10 minutes in boiling water), then drain well. For the egg mixture, whisk just until combined—overmixing develops gluten, making the top gummy. Bake at 375°F for the full 45 minutes before increasing heat.
How do I reheat leftovers without drying it out?
Cover with foil and warm at 300°F for 15-20 minutes until heated through. For extra moisture, add 1-2 tablespoons of milk or cream before reheating. Microwaving works in 1-minute intervals on high, but the top will lose crispiness. The best solution? Make smaller batches to avoid leftovers!
Can I use frozen hash browns instead of fresh potatoes?
Yes, but with adjustments! Use 4 cups frozen hash browns (thawed and drained) instead of fresh potatoes. Spread them on a baking sheet and bake at 400°F for 20 minutes until crispy before layering. They'll absorb more liquid, so reduce the egg mixture by ¼ cup to prevent a watery texture. The flavor won't be identical, but it's a convenient shortcut.
What's the secret to getting that perfect crispy top?
The three keys are: 1) Flour in the egg mixture (creates structure), 2) High heat finish (broil at 500°F for 1-2 minutes), and 3) Resting time. Let the casserole sit for 10 minutes after baking before broiling—this helps the top set properly. If it browns too quickly, cover with foil for 30 seconds before finishing.
