Slow-caramelized onions simmered in rich beef broth with a splash of wine, then crowned with toasted baguette and a bubbling blanket of Gruyère. It takes patience, but the deep, sweet flavor is worth every minute.
Recommended for this recipe
Even heat caramelizes the onions slowly without scorching.
Broiler-safe bowls for the classic melted-cheese crust.
Affiliate disclosure: Savora America may earn a commission from qualifying purchases at no extra cost to you.
Ingredients
- 4 tablespoons butter
- 3 lb (1.4 kg) yellow onions, thinly sliced
- 1 teaspoon salt
- 1 teaspoon sugar
- 2 garlic cloves, minced
- 1/2 cup (120 ml) dry white wine
- 6 cups (1.4 L) beef broth
- 2 sprigs fresh thyme
- 1 bay leaf
- 6 slices baguette, toasted
- 2 cups (200 g) shredded Gruyère cheese
Instructions
- Melt butter in a Dutch oven over medium heat. Add onions, salt and sugar.
- Cook 45 to 55 minutes, stirring often, until onions are deep golden brown.
- Stir in garlic for 30 seconds, then add wine and scrape up the browned bits.
- Add broth, thyme and bay leaf. Simmer 20 minutes, then remove herbs.
- Ladle soup into oven-safe crocks, top with toasted baguette and Gruyère.
- Broil 2 to 4 minutes, until the cheese is bubbling and golden.
Tips for the best results
Do not rush the onions. Medium heat and frequent stirring build the sweet, deep flavor that makes this soup special.
Nutrition per serving
Daily values are based on a 2,000-calorie diet.
Estimated values per serving.
Shop this recipe
Slices 3 lb of onions thin and even in minutes, without tears.
Popular Kitchen Picks
Useful tools for easier cooking, smoothies and healthier meals.
As an Amazon Associate, Savora America earns from qualifying purchases.
Can't find a recipe?
Ask us for the recipe you want
Tell us what you'd like to cook and we'll make it for you. We'll email you the link when it's published.
✅
Thank you! 🍽️
We got your request. We'll email you your recipe as soon as it's ready.
Thanks so much for cooking with Savora America!
See all recipes →Please check your email and try again.




