
French Onion Soup
French onion soup is made by slowly caramelizing onions for 45-60 minutes, building a rich broth with beef stock and wine, then topping toasted bread slices with Gruyère and broiling until bubbly. The full process takes about 90 minutes but most of that is hands-off.
French onion soup asks you to slice three pounds of onions and then stand nearby while they slowly become something far better than they had any right to be. That is the bargain. There is no shortcut that turns pale onions into the deep, sweet, savory foundation this soup needs. Butter, olive oil, salt, and a small amount of sugar help the onions along, but time is doing the real work.
Once the onions are properly browned, garlic and white wine pull the pan in a more savory direction, flour adds just enough body, and beef broth, thyme, bay leaf, and optional sherry or cognac turn the caramelized onions into a full soup instead of hot onion water. Then comes the part everybody remembers: thick bread, Gruyère, Parmesan, and enough heat to melt and brown the cheese into a lid you have to break through with a spoon.
The first bite is always structurally questionable. There is molten cheese stretching across the bowl, bread trying to leave as one piece, and soup underneath at approximately the temperature of the sun. Proceed with dignity if available. What makes it worth the trouble is the balance—sweet onions, salty broth, toasted bread, nutty cheese, and that browned top. Give the onions the time they need, and the soup tastes like it took all afternoon because, in the one place that matters, it did.
Ingredients
- 3 lbs (about 6 medium) yellow onions, halved and thinly sliced
- 4 tablespoons unsalted butter
- 1 tablespoon olive oil
- 1 teaspoon kosher salt, plus more to taste
- 1/2 teaspoon granulated sugar
- 3 cloves garlic, minced
- 1/2 cup dry white wine (such as Sauvignon Blanc or Pinot Grigio)
- 2 tablespoons all-purpose flour
- 6 cups good-quality beef broth (low-sodium preferred)
- 1/2 cup water
- 2 teaspoons fresh thyme leaves (or 3/4 teaspoon dried thyme)
- 1 bay leaf
- 1 tablespoon dry sherry or cognac (optional but recommended)
- Black pepper to taste
- 4 thick slices of baguette or crusty French bread (about 3/4-inch thick)
- 1 1/2 cups freshly grated Gruyère cheese (about 5-6 oz)
- 2 tablespoons freshly grated Parmesan cheese
Instructions
- 1In a large Dutch oven or heavy-bottomed pot, melt the butter with the olive oil over medium heat. Add the sliced onions and toss to coat. Sprinkle with 1 teaspoon salt and the sugar. The sugar speeds caramelization — that's the only reason it's there, not because this is dessert.
- 2Cook the onions over medium to medium-low heat, stirring every 5-8 minutes, for 45-60 minutes. Do not rush this. They should turn deep golden-amber, jammy, and sweet. If they start sticking, add a splash of water and scrape up the browned bits — those bits are flavor. If they're browning in 20 minutes, your heat is too high and you should turn it down.
- 3Once onions are deeply caramelized, add the minced garlic and cook for 1-2 minutes until fragrant.
- 4Pour in the white wine and stir, scraping up any browned bits from the bottom of the pot. Let it simmer for 2-3 minutes until the wine is mostly absorbed.
- 5Sprinkle the flour over the onions and stir well to coat evenly. Cook for 1-2 minutes to eliminate the raw flour taste.
- 6Gradually pour in the beef broth and water, stirring constantly. Add the thyme, bay leaf, and a few grinds of black pepper. Bring to a boil, then reduce heat and simmer uncovered for 20 minutes.
- 7Stir in the sherry or cognac if using. Taste and adjust salt and pepper. Remove the bay leaf. The broth should taste rich, savory, and deeply onion-forward.
- 8While the soup finishes, preheat your oven broiler. Place bread slices on a baking sheet and toast under the broiler for 1-2 minutes per side until golden and firm. Watch them — the broiler has no patience.
- 9Ladle hot soup into 4 oven-safe crocks or bowls, filling about 3/4 full. Place a toasted bread slice on top of each. Divide the Gruyère evenly over the bread, then sprinkle Parmesan on top.
- 10Place the filled crocks on a rimmed baking sheet (this saves your oven from any overflow) and broil 4-6 inches from the heating element for 2-4 minutes, until the cheese is melted, bubbling, and spotted with golden-brown patches. Serve immediately and warn people that the bowls are extremely hot.
Nutrition Information
Estimated per serving: 1 of 4 servings.
Estimated from the ingredients and quantities in this recipe using standard food-composition values. Brand choices, trimming, cooking loss, optional ingredients, and actual portion size can change the numbers. How we calculate nutrition estimates.
Pro Tips
- Yellow onions are the move for this recipe — they have the right sugar content for deep caramelization. Sweet onions go mushy; red onions go strange. Stick with yellow.
- Grate your own Gruyère. Pre-shredded cheese has a coating on it that makes it melt like it's annoyed at you. Fresh-grated melts clean, pulls long, and behaves.
- If you don't have oven-safe crocks, use any oven-safe bowl — or skip the broiling, ladle the soup into regular bowls, and just melt the cheese on the toast separately under the broiler before floating it on top. Still excellent. Slightly less dramatic. Your kitchen, your rules.
Substitutions
Storage Instructions
Store leftover soup (without the bread and cheese topping) in an airtight container in the refrigerator for up to 4 days. The soup freezes well for up to 3 months — freeze in individual portions for easy reheating. Reheat on the stovetop over medium heat. Make fresh toast and add fresh cheese each time you serve; reheating assembled bowls results in soggy bread.
Make Ahead
The soup base — onions, broth, everything except the bread and cheese — can be made up to 3 days ahead and refrigerated. The flavor improves overnight. When ready to serve, reheat the soup on the stovetop, toast fresh bread, and broil with cheese as directed.
Make It a Meal
Pair this recipe with a side, bread, and something sweet from the FAFO Kitchen.








