This easy French onion soup features deeply caramelized onions simmered in rich beef broth with fresh thyme and white wine. Topped with toasted baguette and bubbling Gruyère cheese, it's a comforting French classic that's surprisingly simple to make at home.
Heat the butter and olive oil in a large, heavy-bottomed pot over medium heat.
Add the sliced onions, thyme leaves (removed from their sprigs), and bay leaf. Stir to coat the onions in the butter and oil.
Reduce the heat to low and cook for about 45 minutes, stirring occasionally at first and more frequently as the onions begin to brown. Season with salt and continue cooking until the onions are deeply golden brown, soft, and caramelized. If they begin to stick, add a splash of water and scrape up the browned bits.
Make the Soup
Pour in the white wine, stirring to scrape up any browned bits from the bottom of the pot. Simmer for 2–3 minutes to reduce slightly.
Add the beef broth and bring to a gentle boil. Reduce the heat and simmer for 20–30 minutes to allow the flavors to develop. Taste and adjust the seasoning with salt and black pepper.
Prepare the Topping
Preheat the broiler. Ladle the soup into four oven-safe bowls and top each with a slice of toasted baguette.
Divide the grated Gruyère evenly between the bowls, covering the bread generously.
Broil and Serve
Place the bowls on a sturdy baking sheet and broil for 3–5 minutes, until the cheese is melted, bubbling, and golden brown. Watch closely to prevent burning.
Garnish with additional fresh thyme, if desired, and serve immediately. Be careful, as the bowls will be very hot.
Notes
For deeply caramelized onions: Cook slowly over low heat, stirring more frequently toward the end. If the onions begin to stick, add a splash of water to loosen the browned bits without burning them.
For the best cheesy topping: Toast the baguette before adding it to the soup and use freshly grated Gruyère for smooth, even melting.
Storing leftovers: Refrigerate the soup without the bread or cheese in an airtight container for up to 4 days, or freeze for up to 3 months. Reheat thoroughly and add the fresh toppings just before serving.