French onion soup is the greatest argument for patience in all of cooking. Take 1.2 kilograms of ordinary yellow onions and, over 45 to 55 minutes of attentive slow cooking, transform them into something unrecognizable — jammy, deeply sweet, almost syrupy — as their water evaporates and their natural sugars caramelize against the hot pan. Simmer those transformed onions in a rich mix of beef and chicken broth with a splash of dry white wine and fresh thyme. Ladle into oven-safe ceramic crocks, float toasted baguette slices on top, and blanket everything under a thick layer of aged Gruyère. Put it under the broiler. Watch the cheese bubble, brown, and form a golden crust that clings to the edge of the bowl. Break through that crust with your spoon. This is soupe à l'oignon — and once you make it properly, restaurant versions will never satisfy you again.

Nutrition estimates based on USDA FoodData Central. Values are per serving and may vary.

  • The caramelized onion base is one of the most deeply savory, complex flavors in all of French cooking
  • A blanket of nutty, melted Gruyère that forms a golden crust — the most satisfying thing to break with a spoon
  • Classic bistro French onion soup at home, for a fraction of the restaurant price
  • The soup itself freezes beautifully — make a double batch and freeze without the bread or cheese topping
  • Essentially hands-off after the first 10 minutes — the onions caramelize themselves

Classic French Onion Soup Recipe

French onion soup with bubbling golden Gruyère crust
15 min
Prep
1h 15min
Cook
1h 30min
Total
4
Servings
⭐ 4.9
Rating
420
Calories

Ingredients

  • The Soup
  • 1.2kg (2.5 lb) yellow onions, thinly sliced
  • 3 tbsp unsalted butter
  • 1 tbsp olive oil
  • 1 tsp sugar
  • 3 garlic cloves, minced
  • 240ml dry white wine or Cognac
  • 1 litre good beef broth
  • 500ml chicken broth
  • 2 tsp fresh thyme
  • 2 bay leaves
  • 1 tsp Worcestershire sauce
  • Salt and black pepper
  • Gratin Topping
  • 8 slices crusty baguette (2cm thick)
  • 200g Gruyère, finely grated
  • 30g Parmesan, finely grated

Instructions

  1. 1Caramelize onions Butter + oil + onions + salt. Medium heat, stir every 5 min for 45–55 min until jammy golden.
  2. 2Deglaze Add garlic 1 min. Add wine. Scrape the fond. Cook until evaporated.
  3. 3Simmer Add broths, thyme, bay leaves, Worcestershire. Simmer 20–25 min. Season.
  4. 4Toast bread Baguette slices at 200°C for 8–10 min until crisp.
  5. 5Gratinée Ladle soup into oven-safe crocks. Float bread. Top with Gruyère + Parmesan. Broil 3–5 min.
1.2kg yellow onions 3 tbsp butter Olive oil 3 garlic cloves 240ml dry white wine 1L beef broth 500ml chicken broth Fresh thyme Bay leaves Worcestershire sauce Crusty baguette 200g Gruyère 30g Parmesan Salt + pepper
  1. 1

    Slow-caramelize the onions — the heart of the soup

    In a large heavy-bottomed pot or Dutch oven, melt butter together with olive oil over medium-high heat. Add all the thinly sliced onions and 1 tsp salt. Stir to coat every onion ring in the fat. Reduce heat to medium. Cook, stirring every 5 minutes, for 45 to 55 minutes total. Midway through (around 25 minutes), add 1 tsp sugar to encourage deeper caramelization. The onions will go through several stages: raw → soft → translucent → golden → deeply brown and jammy. You want deeply brown. The mass should reduce to roughly ¼ of the original volume. Resist the urge to increase the heat — higher heat burns the onions instead of caramelizing them, creating bitterness. If the onions start sticking before they're done, add 2–3 tbsp of water and scrape the bottom.

  2. 2

    Add garlic and deglaze with wine

    Add the minced garlic to the caramelized onions and stir for 1 minute until fragrant. Pour in the dry white wine or Cognac. Using a wooden spoon, scrape up all the fond — the dark, sticky brown bits caramelized onto the bottom of the pot. This fond is concentrated flavor and every bit must be incorporated into the soup. Cook the wine until it has almost completely evaporated, about 3–4 minutes. The liquid should reduce to nearly nothing before you add the broth.

  3. 3

    Build and simmer the broth

    Add the beef broth, chicken broth, fresh thyme sprigs, bay leaves, and Worcestershire sauce to the caramelized onion-wine base. Stir to combine. Bring to a boil, then reduce to a gentle simmer. Cook uncovered for 20–25 minutes. The soup should deepen in color and flavor during this time as the broth absorbs the essence of the caramelized onions. Taste after 20 minutes and adjust: salt if needed, a pinch of black pepper, and optionally a splash more Worcestershire for depth. Remove and discard the thyme sprigs and bay leaves. Keep the soup hot on low heat.

  4. 4

    Toast the baguette croutons

    Slice the baguette at a diagonal into 2cm-thick rounds. Arrange in a single layer on a baking sheet. Bake at 200°C (400°F) for 8–10 minutes, turning once, until the slices are completely dry, crisp, and lightly golden on both sides. They must be completely crisp — any softness means they'll disintegrate into the soup immediately instead of floating proudly under the cheese. Let them cool slightly on a rack.

  5. 5

    Gratinée: assemble and broil

    Position an oven rack close to the broiler. Set oven-safe ceramic crocks or bowls on a sturdy baking sheet (this makes them easier to move). Ladle the hot French onion soup into each crock, filling to within 2–3cm of the rim. Float 2 toasted baguette slices on the surface of each bowl — they should sit on top of the soup like a raft. Cover completely with a generous, even layer of grated Gruyère (about 50g per bowl). Dust with a little Parmesan on top. Slide the baking sheet under the broiler and broil on high for 3 to 5 minutes. Watch closely — the cheese should bubble, turn golden, and develop some dark brown spots at the edges. Serve immediately, directly in the crocks. The bowls are extremely hot — warn your guests.

🏆 The Secrets to Perfect French Onion Soup
  • Use a heavy-bottomed pot. Thin pots create hot spots that burn the onions on the bottom while leaving others raw. A Dutch oven or thick-bottomed stainless pot is ideal for even, patient caramelization.
  • Mix your broths. Pure beef broth alone is too rich; pure chicken broth is too light. The 2:1 beef-to-chicken ratio creates a rounded, balanced base that lets the onion flavor come through clearly.
  • Grate the Gruyère fine. Fine gratings melt faster and more evenly, creating a smoother crust. Coarsely grated cheese can stay chunky in spots even under the broiler.
  • Use a mandoline for the onions. Consistently thin, uniform slices mean every piece caramelizes at the same rate. Thick, uneven pieces mean some burn while others stay raw.
  • The soup can be made up to 3 days ahead. Make the soup base completely, refrigerate, then reheat and add bread + cheese and broil to order.
🔄 Variations to Try
  • Classic Parisian Style: Add a splash of dry Sherry instead of white wine — more common in older Parisian bistros, with a deeper, nuttier flavor profile.
  • Short Rib French Onion Soup: Add braised short rib meat (pulled off the bone) directly into the soup bowls before ladling the broth over. Restaurant-level luxury.
  • Vegetarian Version: Replace beef and chicken broth with a rich mushroom broth made from dried porcini. Equally deep, completely plant-based.
  • French Onion Dip: Caramelize the onions then add them to sour cream with salt and chives. Uses the same slow-cook technique for a legendary party dip.
  • French Onion Pasta: Toss caramelized onions, pasta cooking water, Gruyère, and pasta together for a French onion take on pasta gratin.
The 45–55 minutes spent caramelizing the onions is what makes French onion soup extraordinary. You're cooking off nearly all the water from 1.2kg of raw onions, concentrating their natural sugars, and triggering deep Maillard browning. This produces a complex sweetness that is the backbone of the soup. Rush it with higher heat and you get bitter, burnt onions, not sweet caramelized ones. The good news: after the first 10 minutes, it's mostly hands-off stirring every 5 minutes.
Gruyère is the classic and correct choice. It has the ideal combination of low-temperature meltability, nutty flavor complexity, and the ability to form a golden, bubbly crust under the broiler. A 20–30% addition of Parmesan adds sharper flavor and helps the crust brown more deeply. Swiss Emmental is a solid substitute for Gruyère. Avoid mozzarella (too mild, becomes rubbery) or processed cheese.
Yellow onions are ideal because they have the right balance of sharpness and natural sugar for slow caramelization. White onions can substitute but are slightly sharper. Red onions caramelize beautifully and make a slightly sweeter, more deeply colored soup — an excellent choice. Avoid scallions or shallots as the primary onion — they don't have enough volume or body.
The alcohol deglazes the fond and adds subtle depth to the broth. For a non-alcoholic version, use extra beef broth plus 1 tbsp apple cider vinegar and a pinch of sugar to approximate the acidity and complexity. The result is slightly simpler in flavor but still excellent. Sherry is another great substitute with deeper flavor than dry white wine.
You need oven-safe bowls that can go directly under the broiler — ceramic crocks are traditional and ideal. Whatever you use, ensure it's broiler-safe by checking the manufacturer's rating. Regular glass bowls, plastic, or thin ceramic will crack under broiler heat. Lion head bowls (wide-mouthed oven-safe crocks) are the classic choice and widely available online.
420
Calories
22g
Protein
38g
Carbs
20g
Fat
4g
Fiber
14g
Sugar
1120mg
Sodium
11g
Sat. Fat