Croque Madame is a savory, indulgent sandwich, traditionally made with ham, but this recipe includes a vegetarian version made without ham that uses caramelized onions and garlic to add the savory je ne sais quoi flavor that takes it to the next level. It’s piled high with fillings, gruyere, parmesan cheese, bechamel sauce, and topped with a fried egg – enjoy for brunch, lunch, or dinner!

Two croque madame sandwiches on wooden board with microgreens.

When it comes to vegetarian breakfast recipes, it can sometimes be hard to find what is considered traditional recipes made without meat. But this is what I love: coming up with creative ways to make classic recipes vegetarian – not skimping on flavor or texture.

Even better is when you can easily adjust it for all eaters. So if you come from a family of both meat and meatless eaters, it’s easy to make one meal that everyone will love. While a Croque Madame is traditionally not a vegetarian recipe, this version is so satisfying I am bold enough to say those meat-eaters might even like it better.

What is a Croque Madame?

Only the greatest, most indulgent sandwich around. The French really have this whole sandwich thing figured out.

A croque madame is a hot sandwich that originated in French bistros, quickly becoming a staple in cafes. The sandwich is made with thick slices of bread, thinly sliced ham, gruyere cheese, and a bechamel sauce, then it’s all topped off with a fried egg after the sandwich is baked in the oven or fried in a pan.

It’s essentially a grilled cheese taken up about 842 levels. Or a ham and cheese sandwich, but better. With extra melty cheese and a creamy bechamel sauce piled high on top, the indulgence factor is out of this world.

What does Croque Madame translate to?

Croque means “crunchy bite” and madame means “miss”. On the flip side, for croque monsieur, monsieur translates to “mister”.

Fried egg on top of croque madame sandwich on a cutting board.

What is the Difference Between a Croque Madame and Croque Monsieur?

A croque monsieur is how the croque madame begins… it is the same sandwich consisting of thick slices of bread, ham, cheese, and a bechamel sauce. However, with a croque monsieur, the bread slices are typically dipped in a beaten egg, similar to how french toast is prepared.

A croque madame, on the other hand, has the fried egg on top of the finished sandwich. I’ve heard it’s called a croque madame because the fried egg is like the hat of a lady… but who knows, that could just be hearsay.

How to Make a Vegetarian Croque Madame

How does one take a traditionally meat-filled sandwich and turn it into a delicious, equally indulgent and savory, vegetarian dish? Caramelized onions and garlic, that’s how.

The onions caramelize into a rich golden brown, and towards the end of the cooking process the garlic slices are added, they too become caramelized and turn into a deep, savory delicacy. No one can argue with caramelized onions and garlic in a mix of crusty bread, melty gruyere, and creamy bechamel. I mean NO ONE can.

For the meat-eaters, I’ll go above and beyond and add both the caramelized onion mix and the ham together for a really out-of-this-world experience!

Melted cheese on side of sandwich.

What You’ll Need to Make this Recipe

There are a few “stages” to this recipe, as each layer of the sandwich has its own flavorful addition, but the overall ingredients are pretty straightforward.

  • Bechamel Sauce: for this you will need milk, butter, and flour to begin making the sauce.
  • Seasonings: salt, pepper, a pinch of nutmeg, and garlic powder bring the flavor.
  • Bread: use thick slices of a French loaf or sourdough bread. High-quality bread is going to give you the best sandwich.
  • Dijon Mustard: a hint of tang and flavor, and oh so French.
  • Gruyere Cheese: the cheese is what makes this sandwich, IMO. Ok, I just love cheese. Shred it yourself for best results. Oh, and the parmesan cheese, too.
  • Ham: thinly sliced for the meat-eaters, but totally optional in this version!
  • Yellow Onion and Garlic: our vegetarian version caramelizes these two together fora magical result.
  • Eggs! You can’t have a croque madame without an egg.
Bread on cutting board next to cheeses, mustard, caramelized onion, and ham.

Wait, what is Bechamel Sauce?

Simply put, a béchamel is a rich white sauce used in a variety of recipes. It’s the QUEEN of sauces in French cooking.

It’s made with milk and a roux (flour + butter) and infused with herbs and other flavorings. In this recipe, it’s lightly flavored with nutmeg (to bring out the subtleties in the roux and cheese), and garlic to enhance the flavors as garlic so does.

How To Make Bechamel Sauce

You’ll start with a simple roux, which is a paste of butter and flour, whisking the two together and cooking over low heat in a skillet.

Then, slowly whisk in warmed milk – having it warm is key! You absolutely want the milk to be warm before it’s whisked in, otherwise, you run the risk of burning the roux while the milk comes up to temperature.

Add in the seasonings: pepper, nutmeg, garlic powder, and salt. Salt is absolutely key to bringing out the flavors, don’t forget to salt it properly!

Continue to cook for a few minutes while the sauce thickens. Then, remove from the heat and set aside while we prepare the rest of the sandwich layers.

Croque madame sandwich on cutting board with microgreens next to fork and knife.

How to Layer A Croque Madame

Making a croque madame sandwich is a little more involved than just a basic grilled cheese. It’s a sandwich that takes a little time, but it’s completely worth it. Here’s how we make a vegetarian croque madame and layer the sandwich:

  1. Caramelize the onions. Low and slow is the best way to caramelize onions. Make sure they are sliced evenly so they cook at the same rate. The garlic slices will also go in to roast up, too.
Caramelized onions and shallot in cast iron skillet.
  1. Make the béchamel sauce. Covered that just above! I recommend making this while the onions are cooking for the most efficient process.
  2. Combine the gruyere and parmesan cheeses so they’re ready to go for assembly!
  3. In a large skillet, melt butter. I like to pan-fry the sandwiches, so the butter in the pan is what will crisp up the bread. If your skillet isn’t large enough for two sandwiches, you’ll have to work in batches.
  4. Layer the sandwich.
    • Spread a thin layer of dijon mustard on each slice of bread. Then, place the slice mustard-side up in the skillet with melted butter.
    • Sprinkle the shredded cheeses on top of the slice of bread, over the mustard.
    • Add the caramelized onion mixture (or ham slices, if using).
    • Sprinkle another layer of cheese.
    • Place the other slice of bread, with its thin layer of mustard, on top of the pile (mustard side down).
  5. Flip the sandwich, melting another pat of butter in the pan before flipping so the second side crisps up beautifully, too.
  6. Transfer the fried sandwich(es) to a baking sheet for when it’s time to broil.
  7. Spread the bechamel sauce on top of each sandwich along with the remaining shredded cheeses. Place it under the broiler for a few minutes so the cheese melts and turns a wonderful shade of golden.
Two images: spooning on béchamel and adding cheese on top of sandwich.
  1. Meanwhile, fry the eggs in a small skillet, then place them on top of each sandwich just before serving.
  2. Dig in and enjoy – with a fork and knife for easy eating, espeically with that runny egg yolk. Perfection!

When is the best time to eat a croque madame?

Is it wrong to say for breakfast, lunch, and dinner? It’s basically what I’ve been doing since I first developed my version of this indulgent sandwich. In France, it’s a popular order in bistros and cafes as a quick snack, breakfast, or brunch.

Two images: cutting the egg and sandwich.

So naturally, it makes a delicious and indulgent brunch or lazy weekend breakfast. And quite frankly, it’s one of the best hangover cures. It’s also perfect as “breakfast for dinner”, and I’m just gonna say pairs well with a glass of chilled white wine

Basically, just go ahead and enjoy one whenever the mood strikes. Traditional or vegetarian, this sandwich is going to quickly be a favorite in your recipe rotation!

Overhead cut vegetarian croque madame with runny egg.

Frequently Asked Questions

How do you store leftover croque madame sandwiches?

If you have leftovers, let the sandwich cool completely, then store in an airtight container in the fridge for up to 4 days, although I would recommend eating the leftovers sooner, rather than later so the bread doesn’t get too soggy.

How do you reheat a leftover grilled sandwich?

To reheat a croque madame, it’s important to crisp the bread back up, so the microwave is a big no-no in my book because it will result in a sad, soggy sandwich. Place it in the oven, around 300-325°F for 10-15 minutes until it is warmed through. Add a new fried egg on top if you’d like.

Is bechamel sauce the same as mornay sauce?

Mornay sauce is essentially bechamel sauce with the addition of gruyere. In this recipe, the shredded gruyere and parmesan cheeses are added on top of the bechamel, so it’s really just a technical difference here.

Can I add mushrooms?

Yes, you could totally add mushrooms to the caramelized onions. Make sure when you sautee them to add a little less liquid to allow for the mushrooms to release their water while sauteeing.

croque madame sandwiches with fried egg on board by fork in the kitchen
5 (3 ratings)

Get the Recipe Croque Madame {2 Ways}

Some say it's grilled cheese on a whole other level: this traditional French sandwich is made with lots of melty gruyere, a creamy bechamel sauce, and a fried egg. Make it traditionally with ham or caramelized onions for a vegetarian-friendly version!


Caramelized Onions (Vegetarian Version)

Bechamel Sauce

Sandwich Assembly


Caramelized Onions

  • Heat a large skillet over medium heat. Add olive oil and once it's hot, add the onions and stir to coat. Cook for about 15 minutes, only stirring very occasionally. Be careful to not have the heat too high, you want the onions to slowly brown. If needed, add 1 TBSP water or vegetable stock to moisten the pan. Continue cooking for 10-15 minutes (again, only stirring occasionally) as onions brown. With 5-8 minutes remaining in the cooking time, add garlic. 

Bechamel Sauce

  • Meanwhile, in a small saucepan, heat milk over low-medium heat. In a separate skillet, melt 2 tablespoons of butter, and when it begins to foam slightly, stir in the flour until thick. This is your roux. Keep stirring to cook out the raw flour and ensure it doesn't burn.
  • Slowly whisk/stir in the warmed milk until combined. Add a pinch of salt and pepper (to taste), nutmeg, and garlic powder. Continue to stir while it cooks for 2-3 more minutes, as it thickens. Remove from heat and set aside.

Sandwich Assembly

  • In preparation, turn the broiler on high (about 500-525°F) and have a baking sheet nearby. Combine the shredded cheeses in a bowl.
  • Spread a thin layer of dijon mustard across one side of each slice of bread and set aside. Heat a large skillet over medium-high heat and add 1-2 tablespoons of butter. Depending on the size of your pan, if you can only cook one sandwich at a time, then start with 1 tablespoon of butter, reserving the second for the next sandwich.
  • Once the butter is melted, place one bread slice down into the butter -mustard side up. Layer on a bit of gruyere and parmesan to cover the bread, then add your filling (ham or caramelized onions – or both!), and another layer of cheese. I use about 1/3 – 1/2 cup total for the inside of the sandwich. Place the other slice of bread, mustard side down, on top of the filling. Let the sandwich cook until the first side is golden brown and the cheese is beginning to melt.
  • To flip the sandwich, raise the sandwich up with a spatula, add another tablespoon of butter to the skillet to melt. Flip the sandwich over into the melted butter, and cook again until the second side is golden brown and cheese is melted.
  • Transfer the cooked sandwich(es) onto the baking sheet. If you were only to cook one sandwich at a time, cook the second now.
  • Once both "grilled sandwiches" are made and on baking sheets, spread bechamel sauce over the top of the sandwich. The exact amount will vary on your bread size – probably about 1/4 cup for a regular slice of bread. Top each sandwich with the remaining cheese mixture (~1/3-1/2 cup), then place the pan under the broiler for 3-5 minutes, watching carefully, until the tops are golden brown with melty cheese. 
  • Meanwhile, heat the skillet again to medium heat. Add a bit of additional butter or oil of choice. Once hot, add the eggs and fry them for 2-3 minutes until the whites are set but the yolk is still runny (or to your preferred doneness).
  • When the sandwiches have been removed from the broiler, top them with the fried egg and serve immediately. Fork and knife are recommended. Enjoy!


  • The mustard and cheese measurements are approximations because you should create the sandwich that YOU love. The size of your bread slice also plays a HUGE role. I photographed these on massive slices of French bread, and therefore used more cheese! Trust your gut. 
  • You’ll likely have extra bechamel. Store it in an airtight container with a piece of parchment or waxed paper against the top to prevent a film from forming. Use within 3-ish days with another sandwich or in a pasta sauce.
  • *Look for cheese specifically labeled vegetarian, if needed.
Serving: 1half sandwich, Calories: 726kcal, Carbohydrates: 47g, Protein: 31g, Fat: 47g, Saturated Fat: 24g, Polyunsaturated Fat: 3g, Monounsaturated Fat: 16g, Trans Fat: 1g, Cholesterol: 188mg, Sodium: 778mg, Potassium: 324mg, Fiber: 2g, Sugar: 7g, Vitamin A: 1259IU, Vitamin C: 3mg, Calcium: 710mg, Iron: 3mg
Did you make this recipe?Please leave a star rating and review in the form below. I appreciate your feedback, and it helps others, too!