Croque Madame
intro
Indulgent French bistro classic: crispy toasted ham and cheese layered with creamy béchamel, melted Gruyère, and crowned with a runny sunny-side-up egg.
Ingredients
Steps
Make the béchamel sauce
Melt 30g (2 tbsp) of unsalted butter in a small saucepan over medium-low heat. Whisk in 30g (2 tbsp) all-purpose flour to form a smooth, pale roux, and cook for 2 minutes, stirring constantly, until it smells faintly toasty and nutty. Slowly pour in 240ml (1 cup) warmed whole milk, whisking continuously to avoid lumps, and cook for 3-4 minutes until the sauce thickens enough to coat the back of a spoon. Stir in 1/4 tsp ground nutmeg, 1/4 tsp kosher salt, and 1/8 tsp black pepper, then set aside off heat.
Assemble sandwich bases
Lay 8 slices of thick-cut white bread on a clean work surface. Spread 1.5 teaspoons of Dijon mustard evenly over one side of each of 4 bread slices (the base of each sandwich). Divide 110g (1 cup) of the grated Gruyère and all 160g of thinly sliced ham across the 4 Dijon-coated slices, piling fillings in an even layer. Top each filled base with a second bread slice, pressing down gently to form 4 tight, closed sandwiches.
Toast the sandwiches
Melt 15g (1 tbsp) of the remaining unsalted butter in a large cast-iron or nonstick skillet over medium heat. Add 2 of the assembled sandwiches, and cook for 2-3 minutes per side until the bread is deep golden brown and the cheese inside starts to melt. Transfer the toasted sandwiches to a parchment-lined baking sheet, then repeat with the remaining 15g (1 tbsp) butter and 2 remaining sandwiches.
Top with sauce and cheese
Turn your oven broiler to high heat to preheat for 2 minutes. Spoon 60ml (4 tbsp / 1/4 cup) of the prepared béchamel sauce evenly over the top of each toasted sandwich, spreading it to cover the entire top surface all the way to the bread edges. Sprinkle the remaining 110g (1 cup) of grated Gruyère evenly over the béchamel on each sandwich.
Broil to melt cheese
Place the baking sheet on the middle rack of the preheated broiler, positioned 15cm (6 inches) from the top heat element. Broil for 2-3 minutes, watching very closely, until the cheese is fully melted, bubbly, and dotted with light golden brown spots across the top. Remove the baking sheet from the oven and set aside while you cook the eggs.
Fry eggs and plate
Wipe out the skillet used for toasting sandwiches, and heat it over medium-low heat. Crack the 4 large eggs into the pan, taking care not to break the yolks, and cook for 2-3 minutes until the egg whites are fully opaque and set but the yolks remain soft and runny. Season the eggs with the remaining 1/4 tsp kosher salt and 1/8 tsp black pepper. Place one fried egg on top of each broiled sandwich, and serve immediately.
Tips
2.Stay close to the oven while broiling: the high direct heat can burn the cheese topping in 30 seconds or less if left unmonitored.
3.Press the assembled sandwiches gently before toasting to help them hold together, and avoid overstuffing to prevent fillings from oozing out and burning during cooking.

OMG this was SO good! I was nervous to make a French classic for my book club brunch, but it came together in literally 25 minutes just like the recipe said. The crispy bread, melty gruyere, that runny yolk on top? Total game changer. My friends asked for the recipe before they even finished their first bite!
Made this for Sunday family dinner last week and my kids devoured it! I swapped the dijon for whole grain mustard because that’s what I had in the fridge, and it still turned out amazing. So easy even my 12 year old helped assemble the sandwiches. Will absolutely be adding this to our weekly rotation.
Tried this for a lazy Saturday brunch and wow, way easier than I thought it would be. I’ve ordered Croque Madame at fancy cafes a dozen times and never realized how simple it is to make at home for a fraction of the price. The bechamel sauce comes together so fast, no lumps if you whisk constantly like the tip says!
Okay I know I’m the guy who posts about tacos every week, but this sandwich? Absolute banger. I added a little sprinkle of paprika on top of the bechamel before broiling for a tiny smoky kick, and chef’s kiss. 25 minutes start to finish is perfect for a quick weeknight dinner when I don’t feel like putting in a ton of effort. Only knocked off a star because I wish there was a little more tang from the dijon, but that’s just my personal preference!
Meal prep win alert! I made a batch of these on Sunday, wrapped them individually, and popped them in the fridge for quick breakfasts during the work week. 30 seconds in the microwave and a quick toast in the pan to crisp up the bread, and it tastes just as good as fresh. My mornings are so much less chaotic now!
Wait, has anyone tried making this with plant-based ham and dairy free cheese? I’m not fully vegan but I’m trying to cut back on dairy, and this looks so good I don’t want to miss out! The recipe looks super straightforward so I feel like swaps would work easy, giving 4 stars for now until I test it out myself!
Perfect recipe for a broke college kid! Ingredients are super basic, no fancy equipment needed, and it’s way better than the sad dining hall sandwiches. I didn’t have gruyere so I used swiss, and it still slapped. 10/10 would make again for my roommates when we have our next movie night.
I’ve been making Croque Madame for decades, and this is hands down the easiest, most consistent version I’ve ever tried. The cook time is spot on, no overcooked eggs, no burnt bread under the broiler. I brought these to my neighborhood potluck last month and not a single sandwich was left! Everyone asked for the recipe.
Run don’t walk to make this! I had some leftover sourdough from my local bakery so I used that instead of regular white bread, and it elevated the whole thing so much. Perfect balance of salty ham, creamy bechamel, tangy dijon, and that runny egg on top. My partner said it’s better than the version we got at that little French bistro in Manhattan last month.
Made these after my kid’s early morning soccer game last weekend and it was the perfect hearty brunch to refuel the whole team. The parents were all impressed that I threw it together so fast — little do they know how dead simple the recipe is! I added a side of fresh fruit to balance the richness, and everyone cleaned their plates.
Broiled the cheese for a minute too long on my first batch and got a couple burnt edges, but that was 100% my fault for not watching the oven. The second batch came out perfect, golden bubbly cheese all over, no burnt spots. Pro tip for other new cooks: don’t walk away when the broiler is on! It goes from perfect to charred in like 10 seconds.