French Onion Frittata

updated Aug 3, 2023
French Onion Frittata
This frittata is loaded with all the best parts of a great bowl of French onion soup: velvety caramelized onions, melted Gruyere, even cubes of toast


Jump to Recipe
We independently select these products—if you buy from one of our links, we may earn a commission. All prices were accurate at the time of publishing.
Post Image
Credit: Joe Lingeman

This is the frittata to keep on call when you need a breakfast recipe that’s dressed to impress. It’s a mash-up of frittata and French onion soup that is pure comfort food. The eggs are loaded with all the best parts of a really good bowl of French onion soup, from the rich, velvety caramelized onions, to the gooey, melted Gruyère, and even cubes of toasted bread studded throughout the eggs.

Always Start with More Onions Than You Think You Need

When you add the sliced onions to the skillet, it’s probably going to seem like this recipe calls for entirely too many onions. That’s the thing about caramelized onions — they cook down a lot while concentrating their flavor. This recipe calls for two large yellow onions, which leaves you with about a cup of caramelized onions. It’s just enough to get a bite of rich, sweet and savory strands in every bite.

Because they take a while to cook, I always like to make the caramelized onions ahead of time — and I double or triple the batch when I do. Since you’re already making caramelized onions, it’s not much more work to make extra. They keep for several days in the fridge and a few months in the freezer.

Credit: Joe Lingeman

French Onion Frittata

This frittata is loaded with all the best parts of a great bowl of French onion soup: velvety caramelized onions, melted Gruyere, even cubes of toast

Serves 6

Nutritional Info


  • 2 tablespoons

    unsalted butter, divided

  • 2 cups

    diced day-old bread

  • 1 tablespoon

    olive oil

  • 2

    large yellow onions, thinly sliced

  • 1 1/2 teaspoons

    kosher salt, divided

  • 1 tablespoon

    balsamic vinegar

  • 8

    large eggs

  • 1/4 cup

    whole or 2% milk

  • 1 tablespoon

    Dijon mustard

  • 1/4 teaspoon

    freshly ground black pepper

  • 1/2 cup

    diced Gruyère cheese (2 ounces)

  • 1 tablespoon

    finely chopped fresh chives


  1. Arrange a rack in the middle of the oven and heat to 400°F.

  2. Heat 1 tablespoon of the butter in a 10-inch cast iron skillet over medium heat until bubbling. Add the bread cubes to the pan, toss to coat with the butter, and arrange in a single layer. Toast the bread, tossing every minute or so, until the bread cubes are golden-brown on all sides, about 5 minutes total. Transfer the croutons to a bowl; set aside.

  3. Reduce the heat to low. Add the oil, onions, and 1/2 teaspoon of the salt to the same skillet. Cook, stirring every 5 to 10 minutes and scraping any browned build-up from the bottom of the pan, until the onions are soft and deeply browned, about 40 minutes total. Add the vinegar and scrape up the browned bits at the bottom of the pan.

  4. Whisk together the eggs, milk, mustard, remaining 1 teaspoon salt, and pepper in a large bowl. Stir the remaining butter and croutons into the skillet, then spread in an even layer. Pour the egg mixture over the top. Tilt the pan to make sure the eggs settle evenly. Top with the cheese. Cook until the eggs at the edges of the skillet begin to set, 2 to 4 minutes.

  5. Bake until the eggs are set, 8 to 10 minutes. To check, cut a small slit in the center of the frittata. If raw eggs run into the cut, bake for another few minutes; if the eggs are set, pull the frittata from the oven.

  6. Cool in the pan for 5 minutes, top with chives, then slice into wedges and serve warm.

Recipe Notes

Make ahead: The croutons can be made up to 1 week in advance and stored in an airtight container at room temperature. The caramelized onions can be made up to 3 days in advance and stored in an airtight container in the refrigerator, or up to 3 months in advance and stored in the freezer.

Storage: Leftovers can be stored in a covered container in the refrigerator for up to 5 days.