
Classic French Onion Soup
Deeply caramelized onions simmered in rich beef broth with thyme and a splash of dry white wine, then topped with toasted baguette and bubbling, browned Gruyère. Patience at the stove is the only secret.
- Prep
- 35 min
- Cook
- 1 hr 40 min
- Wait
- 5 min
- Total
- 2 hr 20 min
- Makes
- 6 bowls (about 1¼ cups / 300 ml soup each, plus toast and cheese)
Steps
Before you start
- Plan on about 2 hours 20 minutes total; the onions need about 1 hour of slow cooking and cannot be rushed.
- Use a heavy 5½–6-quart (5–6 L) Dutch oven or pot so the onions brown evenly rather than scorch.
- Use oven-safe soup bowls (broiler-safe ceramic, not glass or anything with a plastic or painted rim) and set them on a rimmed baking sheet.
- Grate the Gruyère and slice the baguette before you start the final assembly, so the broiling goes quickly.
- Before broiling, position an oven rack about 6 inches (15 cm) below the broiler element.
Start the onions
- Set a 5½–6-quart Dutch oven over medium heat.
- Add the butter and olive oil.
- When the butter has melted and stops foaming, add the sliced onions, 1 teaspoon salt, and the sugar.
- Stir to coat.
- The pot will look very full; the onions will shrink by more than half.
+ Show details− Hide details
Ready when: Onions are coated in fat and have begun to wilt and release liquid.
Tip: Cut the onions to an even thickness so they all caramelize at the same rate.
Soften the onions
- Cover the pot and cook for 15 minutes, stirring once or twice, until the onions are soft, translucent, and have released a lot of liquid.
+ Show details− Hide details
Ready when: Onions are limp and translucent, sitting in pooled liquid.
Caramelize slowly
- Remove the lid and reduce the heat to medium-low.
- Cook uncovered for 40–50 minutes, stirring every 3–5 minutes and scraping the bottom, until the onions are a deep mahogany brown, jammy, and reduced to about 1½ cups.
- If the brown bits on the pot bottom start to blacken, add 1–2 tablespoons water and scrape.
+ Show details− Hide details
Ready when: Onions are deep brown, sweet-smelling, and spread like jam; the pot bottom has a dark brown (not black) fond.
Tip: Pale onions give a pale, flat soup. Don't stop until they are truly deep brown.
Add garlic and flour
- Stir in the garlic and cook for 1 minute until fragrant.
- Sprinkle the flour over the onions and stir constantly for 2 minutes to cook out the raw flour taste, until no dry streaks remain and a thin brown paste coats the onions.
+ Show details− Hide details
Ready when: Garlic smells fragrant and flour has disappeared into a pasty coating.
Deglaze with wine
- Pour in the white wine, scraping up all the browned bits from the bottom of the pot with a wooden spoon.
- Simmer for 3–4 minutes until the wine has reduced by about two-thirds and the sharp alcohol smell has mellowed.
+ Show details− Hide details
Ready when: Pot bottom is clean and the liquid is syrupy.
Simmer the soup
- Add the beef broth, thyme, bay leaves, Worcestershire (if using), and a few grinds of pepper.
- Bring to a boil, then reduce to low and simmer partially covered for 30 minutes so the flavors meld.
+ Show details− Hide details
Ready when: Broth is deep amber and tastes rounded and savory, not thin.
Season the soup
- Remove and discard the thyme sprigs and bay leaves.
- Stir in the sherry or brandy.
- Taste and add salt, about ½ teaspoon at a time, and more pepper until the flavor is bright and savory.
- Keep the soup hot over low heat.
+ Show details− Hide details
Ready when: Soup tastes balanced: sweet, savory, and slightly tangy.
Tip: Taste before salting; store-bought broth varies widely in saltiness.
Toast the baguetteOven 400°F / 205°C
- Heat the oven to 400°F (200°C).
- Arrange the 12 baguette slices on a baking sheet and bake for 8–10 minutes, flipping once halfway, until dry, crisp, and lightly golden.
- Remove the baking sheet and turn the oven to broil on high, with the rack about 6 inches (15 cm) from the element.
+ Show details− Hide details
Ready when: Slices are crisp all the way through and lightly golden.
Tip: Well-dried bread stays above the broth instead of dissolving into it.
Assemble the bowls
- Place 6 oven-safe bowls on a rimmed baking sheet.
- Ladle about 1¼ cups (300 ml) hot soup into each, leaving ½ inch (1.25 cm) of space.
- Float 2 toasts in each bowl, then mound about ½ cup (roughly 37 g) grated Gruyère over each, covering the bread and letting the cheese overlap the rim slightly.
+ Show details− Hide details
Ready when: Bread is fully covered with cheese.
Tip: Cheese that touches the bowl rim crisps into delicious browned edges.
Broil and serveOven 500°F / 260°C
- Broil on high (about 500°F / 260°C) for 3–5 minutes, watching closely, until the cheese is melted, bubbling, and speckled with brown spots.
- Let the bowls rest 5 minutes, since they will be extremely hot, then serve with a spoon and knife to cut through the cheese.
+ Show details− Hide details
Ready when: Cheese is bubbling and deep golden with browned spots.
Tip: Broilers vary; never walk away, as cheese can go from golden to burnt in under 30 seconds.
Good to know
Tips
- Don't rush the onions: turning the heat up causes scorching and bitterness rather than sweet caramel flavor.
- Use yellow onions; they have the right balance of sugar and sulfur for a deep, savory-sweet soup.
- Sit the bowls on a baking sheet so you can move them in and out of the broiler safely and catch any drips.
- If the soup tastes flat, a small splash of sherry vinegar or extra salt usually fixes it.
Make ahead
Make the soup through step 7 up to 3 days ahead; cool and refrigerate in an airtight container. Reheat gently on the stove until steaming, then toast the bread and broil with the cheese just before serving.
Storage & reheating
Store soup without bread and cheese in the fridge up to 4 days in an airtight container, or freeze up to 3 months (cool completely, leave 1 inch headspace). Thaw overnight in the fridge and reheat on the stove over medium-low until steaming. Assembled, broiled bowls do not store well; eat immediately. Toasted baguette slices keep 2 days at room temperature in an airtight container.
Substitutions
- dry white wine → additional beef broth plus 1 tbsp white wine vinegar or sherry vinegar. For an alcohol-free version; use ¾ cup (180 ml) broth.
- Gruyère cheese → Comté, Emmental, or Swiss cheese (optionally with a little Parmesan). Comté is closest; Swiss melts well but is milder.
- low-sodium beef broth → low-sodium beef stock or a mix of chicken and beef broth. Homemade stock gives the best body; reduce added salt if using regular broth.
- dry sherry or brandy → cognac or an extra 1 tsp of red wine vinegar. Adds depth and brightness at the end.
More soups & stews
See all →Find more like this
- Meal
- Dinner
- Cuisine
- French
- Main ingredient
- Cheese
- Season
- Winter Comfort Food





