Overnight Croissant Breakfast Casserole
This Overnight Croissant Breakfast Casserole takes everything you love about a classic ham and cheese croissant and turns it into a make-ahead brunch dish. It’s rich, custardy, and the croissants soak up the egg mixture overnight so all you have to do in the morning is bake it.

The edges turn golden and crisp, the center stays soft and almost like bread pudding, and the melted Gruyère pulls in every bite. It’s the kind of low-effort dish that makes a weekend morning feel special.
Why This Casserole Works
You get all the buttery layers of a fresh croissant but in a spoonable, savory form. The custard soaks in deep, so the casserole never dries out, and the ham adds just enough salty chew.
I love that you can build it the night before and slide it into the oven when everyone starts waking up. It bakes up puffed and golden, and the whole kitchen smells like a bakery.
Ingredients

- 6 large day-old croissants: torn into 2-inch pieces; slightly stale croissants soak up the custard without turning to mush.
- 8 oz cooked ham, diced (about 1 1/2 cups): a good deli or baked ham works well here.
- 2 cups shredded Gruyère cheese (about 6 oz): nutty and melts beautifully; Swiss or even sharp cheddar can work in a pinch.
- 8 large eggs: give structure and richness.
- 2 cups whole milk: full-fat milk makes the custard silky.
- 1 cup heavy cream: adds body and keeps the baked casserole tender.
- 1 tbsp Dijon mustard: a little tang to balance the richness.
- 1 tsp kosher salt: enhances all the flavors.
- 1/2 tsp freshly ground black pepper: just enough heat.
- 1/4 tsp grated nutmeg (optional): a warm background note that feels classic with ham and cheese.
- 2 green onions, thinly sliced: for a fresh, oniony finish.
Variations / Substitutions
- Ham: Cooked, crumbled bacon or browned breakfast sausage are both excellent. Sauté and drain the meat before using.
- Vegetarian: Skip the ham and add sautéed mushrooms and spinach, wilted and pressed dry, for a meatless version.
- Cheese: Sharp cheddar, fontina, or a mix of mozzarella and Parmesan all work. Stick with a cheese that melts well.
- Dairy-free: Use a full-fat oat milk or unsweetened almond milk for both the milk and cream (3 cups total), and pick a dairy-free cheese that melts. The texture will be slightly looser but still good.
For a sweeter take, try a berry croissant bread pudding with a vanilla custard.
How to Make Overnight Croissant Breakfast Casserole
Step 1: Tear and Layer the Croissants

Tear the croissants into roughly 2-inch pieces and scatter half of them into a buttered 9×13-inch baking dish. Sprinkle on half the diced ham and half the Gruyère. Repeat with the remaining croissants, ham, and cheese, layering everything evenly so every bite gets a bit of each.
The croissants should be arranged loosely, not packed down tight. This gives the custard room to seep into all those buttery folds. You’ll see the cheese and ham peeking through the top layer, which is exactly what you want for those golden, melty spots later.
Step 2: Whisk and Pour the Custard

In a large bowl, whisk together the 8 eggs, 2 cups whole milk, 1 cup heavy cream, 1 tbsp Dijon mustard, 1 tsp kosher salt, 1/2 tsp black pepper, and the 1/4 tsp nutmeg, if using. Whisk until the mixture is smooth and no streaks of yolk remain. Slowly pour the custard over the layered casserole, making sure to cover all the croissant pieces. Press down gently with a spatula so every piece gets soaked.
Cover the dish tightly with plastic wrap and refrigerate for at least 4 hours, or overnight (8 to 12 hours is ideal). The long soak transforms the croissants into a soft, custardy base while still holding their shape. As it chills, the cheese and ham will settle into the dish, and the top may look a bit drier—it will puff and brown beautifully in the oven.
Step 3: Bake the Casserole

When you’re ready to bake, preheat the oven to 350°F (175°C) with a rack in the middle. Remove the plastic wrap from the casserole and let it sit at room temperature while the oven heats, about 20 minutes. Bake uncovered for 45 to 50 minutes, until the center is set and no longer jiggly and the top is deeply golden and puffed.
The edges will pull away slightly from the sides of the dish, and a knife inserted into the center should come out clean. If the top is browning too quickly before the custard is set, tent it loosely with foil for the last 10 minutes.
Step 4: Slice and Serve

Let the casserole rest for 5 to 10 minutes out of the oven—it will settle and firm up just enough to slice cleanly. Run a knife around the edges, then cut into 8 generous squares. Slide a wide spatula under each piece to lift it out, keeping all those layers intact.
Scatter the sliced green onions over the top and serve warm. A sprinkle of flaky salt on the finished plate adds a nice little crunch. The cross-section shows the buttery croissant ribbons suspended in a tender, savory custard, and the melted Gruyère makes long, stretchy strands as you pull the first piece free.
A Few Notes Before You Start
- Use day-old croissants: Fresh croissants are too soft and can turn mushy overnight. If yours are fresh, toast the torn pieces in a 300°F oven for 10 minutes to dry them out, then let cool before layering.
- Don’t skip the rest after baking: Those 5 to 10 minutes let the casserole set so it doesn’t collapse when you slice it. The temperature will drop just enough to avoid burning tongues, too.
- For a crispier top: Uncover the casserole for the last 5 minutes of baking if you used foil, or switch on the broiler for 1 to 2 minutes (watch it closely) to get the cheese edges extra bubbly.
- Leftover ham? This is a great way to use up a holiday ham bone or a chunk of roasted pork. Just dice it small so it distributes evenly.
Storing and Reheating Leftovers
- Refrigerate: Store any leftover casserole tightly covered in the fridge for up to 4 days.
- Reheating: Reheat individual portions in the microwave for 1 to 2 minutes, or in a 325°F oven for 10 to 15 minutes, covered, until warmed through. The oven method keeps the top from getting soggy.
What to Serve with Croissant Breakfast Casserole
A simple green salad with a lemon vinaigrette cuts through the richness of the eggs and cheese. The bright acidity gives your palate a reset between bites. Fresh fruit salad—berries, melon, and a little mint—adds a juicy, cool contrast that feels right for a brunch spread. If you want a drink, a cold mimosa with fresh orange juice is always welcome, but a black coffee is just as good next to this savory casserole.
Frequently Asked Questions
Can I use fresh croissants instead of stale?
Yes, but they’ll soak up liquid faster and can become a little too soft. If using fresh, toast the torn pieces briefly or reduce the soaking time to 2 to 3 hours instead of overnight.
Can I make this casserole without ham?
Absolutely. You can leave the meat out entirely and add extra vegetables like sautéed mushrooms, spinach, or roasted red peppers. Just make sure any vegetables are cooked and well-drained so the casserole isn’t watery.
Do I really have to refrigerate it overnight?
No, you can bake it after a shorter soak of 2 to 3 hours in the fridge. The texture will be slightly less pudding-like, but it will still set beautifully. The overnight rest just lets the croissants absorb more custard evenly.
Can I freeze this breakfast casserole?
Yes, you can freeze the assembled, unbaked casserole for up to 1 month. Let it thaw overnight in the fridge, then bake as directed. Baked leftovers also freeze well; reheat from frozen in a 350°F oven, covered, until hot.

Ingredients
Method
- Butter a 9×13-inch baking dish. Layer half the croissants, half the ham, and half the cheese. Repeat the layers.
- In a large bowl, whisk together the eggs, milk, cream, Dijon, salt, pepper, and nutmeg. Pour evenly over the croissant layers, pressing down gently. Cover and refrigerate at least 4 hours or overnight.
- Preheat oven to 350°F (175°C). Let the casserole sit at room temperature for 20 minutes. Bake uncovered for 45 to 50 minutes, until golden and the center is set.
- Rest for 5 to 10 minutes, then slice into squares. Top with green onions and serve warm.
