3lbsyellow onionsabout 5–6 large, thinly sliced into half-moons
3tablespoonsunsalted butter
1tablespoonolive oil
1teaspoongranulated sugaroptional, helps browning
3clovesgarlicminced
1tablespoonall-purpose flourfor thickening
1/2cupdry white wine or dry sherryfor deglazing
4cupsgood-quality beef brothlow-sodium preferred
2cupschicken brothadds lightness to balance the beef broth
4sprigsfresh thymeor 1/2 teaspoon dried thyme
2bay leaves
1tablespoonWorcestershire sauce
1teaspoonkosher saltplus more to taste
1/2teaspoonblack pepperfreshly ground
Gruyère Toasts
8slicesbaguetteabout 1/2 inch thick
1 1/2cupsGruyère cheesefreshly shredded, about 6 oz
1tablespoonolive oilfor brushing the bread
Instructions
Caramelize the Onions
In a large, heavy-bottomed Dutch oven or wide pot, melt the butter with the olive oil over medium heat. Add all the sliced onions and stir to coat them in the fat. Sprinkle with 1 teaspoon of salt and the optional sugar.
Cook the onions, stirring every 5–8 minutes, over medium to medium-low heat for 45–55 minutes total. Adjust the heat as needed — you want steady sizzling without burning. The onions are ready when they are deep golden brown, jammy, and reduced to about one-quarter of their original volume.
Build the Soup
Add the minced garlic to the caramelized onions and cook for 1 minute, stirring constantly, until fragrant.
Sprinkle the flour over the onions and stir well to coat. Cook for 1–2 minutes to eliminate the raw flour taste.
Pour in the white wine or dry sherry and scrape up any browned bits from the bottom of the pot. Let the wine reduce by half, about 2 minutes.
Add the beef broth, chicken broth, thyme sprigs, bay leaves, Worcestershire sauce, and black pepper. Stir to combine and bring to a gentle simmer over medium heat.
Reduce the heat to low and simmer uncovered for 15–20 minutes to allow the flavors to meld. Remove and discard the thyme sprigs and bay leaves. Taste and adjust salt and pepper as needed.
Toast the Baguette
While the soup simmers, preheat your oven broiler to HIGH and position a rack in the upper third of the oven.
Arrange baguette slices on a baking sheet and lightly brush both sides with olive oil. Broil for 1–2 minutes per side until golden and lightly crisped. Watch closely — they brown fast. Set aside.
Broil and Serve
Ladle the hot soup into 4 oven-safe crocks or bowls, filling them about 3/4 full. Place 2 toasted baguette slices on top of each bowl of soup.
Top each bowl generously with shredded Gruyère cheese, making sure the cheese covers the bread and extends slightly to the edges of the bowl.
Carefully place the filled crocks on a sturdy baking sheet and slide under the broiler for 2–4 minutes, until the cheese is fully melted, bubbling, and golden brown in spots. Watch closely.
Remove from the broiler carefully — the bowls will be extremely hot. Let rest for 1–2 minutes before serving. Garnish with fresh thyme leaves if desired.
Notes
Make-ahead tip: The soup base (without bread and cheese) can be refrigerated for up to 5 days or frozen for up to 3 months. Reheat on the stovetop before ladling and broiling.Cheese swap: Swiss, Emmental, or provolone are great substitutes for Gruyère if budget or availability is a concern.Broiling safety: Always place crocks on a baking sheet before putting them under the broiler — it makes them much easier and safer to handle.Onion tip: Don't rush the caramelization. The deep color and sweetness of the onions is the heart of this entire recipe.