Soups & Stews
This 99 Restaurant French Onion Soup recipe delivers the same rich, comforting flavors you crave—caramelized onions, tender beef broth, and a golden Gruyère crust that’s impossible to resist.
The secret lies in slow-cooking the onions until they’re deeply sweet and browned, then layering everything with perfectly toasted bread and melted cheese. I’ve recreated this iconic dish with restaurant-quality techniques, ensuring every spoonful is packed with depth and warmth.
The foundation starts with a deeply flavorful beef broth, simmered until it’s rich and aromatic. Layered beneath are the caramelized onions—cooked low and slow until they’re sweet, jammy, and perfectly browned.
This isn’t just any onion soup; it’s the kind that makes you close your eyes and savor every bite, with that unmistakable texture of crispy bread and melted Gruyère on top. The high heat broil at the end ensures the cheese gets that signature golden crust without burning.
What sets this apart is the balance of flavors—sweet onions, savory broth, and the umami-rich cheese topping. The bread soaks up the broth beautifully, while the cheese adds a luxurious finish that feels like a hug in a bowl.
Whether you’re craving comfort food or want to recreate a restaurant favorite at home, this recipe delivers restaurant-quality results with minimal fuss.
Ready in about 1 hour, this soup is perfect for chilly evenings or when you need a meal that feels like a warm embrace. The best part?
Leftovers taste even better the next day as the flavors meld even more. Let’s make this iconic dish—your taste buds will thank you.
Ingredients for 99 restaurant french onion soup
Caramelized onions, rich broth, and golden Gruyère—this is the soul of restaurant-style French onion soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 4 whole | Thinly sliced, peeled |
| Beef Broth 🥫 | 6 cups | Homemade or quality store-bought |
| Dry White Wine 🍷 | ½ cup | Sauvignon Blanc preferred |
| Unsalted Butter 🧈 | 4 tbsp | For caramelizing onions |
| Fresh Thyme 🌿 | 1 tbsp | Leaves only, chopped |
| Garlic Cloves 🧄 | 4 cloves | Minced for depth |
| All-Purpose Flour 🌾 | 2 tbsp | For thickening broth |
| Gruyère Cheese 🧀 | 1 ½ cups | Freshly grated, aged |
| Baguette 🍞 | 1 whole | Sliced into 1-inch pieces |
| Olive Oil 🫒 | 2 tbsp | For toasting bread |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Bay Leaf 🌿 | 1 whole | For broth infusion |
The onions are everything here. Yellow onions work best—they caramelize more sweetly than red. Slice them paper-thin so they cook down quickly. Costco or Trader Joe's usually have the best prices for bulk onions, but any grocery store will do. The key is patience—this isn't a rush job. You want them deep golden brown, almost jammy. If you're short on time, soak them in cold water for 30 minutes first to speed up the process. Fresh thyme and garlic cloves get tossed in later for that restaurant-quality depth.
No white wine? Substitute extra beef broth with a splash of apple cider vinegar—it mimics the acidity. Gruyère is non-negotiable for that signature flavor, but Comté or Emmental work in a pinch. Pre-shredded cheese is a no-go here—it burns and lacks texture. For the baguette, any crusty French bread works, but avoid pre-sliced loaves. The flour is just for thickening—if you don't have any, a cornstarch slurry works too. And if your broth isn't rich enough, add a bouillon cube or two for extra umami.
This soup tastes even better the next day—flavors meld beautifully. Store leftovers with a tight lid for up to 4 days in the fridge. For freezing, portion before adding the cheese topping—it reheats best if added fresh after thawing. The bread? Toast it fresh before serving—5 minutes under the broiler gets it perfectly crispy. If making ahead, assemble the soup without the cheese and broil just before serving to keep that golden crust.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s all about minimal cleanup—just onions caramelizing in butter, wine deglazing, broth simmering. No extra bowls, no fuss, and that golden crust on top? Worth every second.
- Wine-Infused Depth: That splash of dry white wine isn’t just for show—it cuts through the sweetness of the onions and lifts the broth to something restaurant-worthy. The thyme? Tiny but mighty, adding earthiness that makes it taste like a hug in a bowl.
- Weeknight to Dinner Party: Make a double batch on a Tuesday, reheat it for Thursday, or serve it to guests with zero stress. The rich, savory broth freezes like a dream, and the crispy cheese topping? Always a crowd-pleaser, whether it’s a lazy night in or a fancy-ish dinner.
- Budget-Friendly Luxury: Onions and broth are cheap, but the flavor? Chef’s kiss. You’re getting that gourmet taste without the gourmet price tag—plus, the leftovers are even better the next day. Honestly, it’s my go-to when I want to feel fancy without breaking the bank.
Step-by-step instructions for French onion soup with Gruyère crunch
This classic recipe delivers restaurant-quality depth with perfectly caramelized onions and a golden cheese topping.
Caramelize the Onions Slowly
Heat a large Dutch oven over medium-low heat and add the 4 tbsp unsalted butter. Once melted, add the 4 whole yellow onions, sliced thinly and evenly. Let them cook undisturbed for 10 minutes—this gives them time to release moisture and begin softening.
After the initial 10 minutes, stir the onions and reduce heat to low. Cook for another 45-50 minutes, stirring occasionally, until they turn a deep golden brown color. The onions should be soft, sweet, and jammy with very little moisture remaining. This slow process develops the rich, caramelized flavor that makes this soup special. If they start to stick, add a splash of water and scrape up any browned bits—they're packed with flavor.
Build the Rich Broth Base
Once the onions are perfectly caramelized, increase heat to medium and add the 4 cloves minced garlic, cooking for 30 seconds until fragrant. Immediately pour in the 0.5 cup dry white wine, scraping up any browned bits from the bottom of the pot. Let the wine simmer for 2-3 minutes until mostly evaporated.
Sprinkle the 2 tbsp all-purpose flour over the onions and stir well to coat. Cook for 1-2 minutes until the flour turns a light golden color. Slowly pour in the 6 cups beef broth while stirring constantly to prevent lumps. Add the 1 whole bay leaf, 1.5 tsp salt, and 0.5 tsp black pepper. Bring to a gentle simmer and let cook for 20-25 minutes until the soup has thickened slightly. Remove the bay leaf before proceeding.
Toast the Baguette Slices
While the soup simmers, preheat your oven to 375°F. Cut the 1 whole baguette into 1-inch thick slices—you should have about 12-15 slices. Brush both sides of each slice with olive oil, then place them on a baking sheet. Toast in the oven for 8-10 minutes until golden brown and crisp.
Here's the thing—don't skip the toasting. The crispy bread is what gives this soup its signature crunch and texture contrast. You can also toast the bread in a skillet over medium heat if you prefer, but the oven method gives more even browning. Keep the toasted slices warm while you prepare the cheese topping.
Assemble and Bake the Cheese Topping
Return the soup to a gentle simmer. Ladle about 1 cup of hot soup into each of four oven-safe bowls or ramekins. Place 2-3 toasted baguette slices in each bowl, slightly overlapping them to cover the soup completely. Sprinkle the 1.5 cups freshly grated Gruyère cheese evenly over the bread in each bowl.
Transfer the bowls to the oven and bake for 3-5 minutes until the cheese is fully melted and bubbly, and the bread is golden brown and crisp. Watch closely—the cheese melts quickly, and you want it to be golden without burning. The cheese should form a beautiful, bubbly blanket over the soup with crispy edges.
Garnish and Serve Immediately
Remove the bowls from the oven and let them sit for 1-2 minutes to allow the cheese to set slightly. Garnish each serving with a sprinkle of fresh thyme leaves for a pop of color and freshness. The aroma alone will have your guests anticipating the first bite.
Serve immediately while the bread is still crisp and the cheese is molten. Each spoonful should deliver layers of flavor: the deep sweetness of caramelized onions, the rich umami of the beef broth, the sharp tang of Gruyère, and the satisfying crunch of toasted baguette. This is comfort food at its finest—warm, hearty, and utterly satisfying.
Pro Tips For Making 99 Restaurant French Onion Soup
- SWEAT THE ONIONS LOW: I used to blast them on high heat like I was in a hurry—big mistake. Caramelize the onions at medium-low for at least 45 minutes, stirring occasionally, until they’re deep amber and syrupy. That’s where the real flavor lives, not the burnt bits. (Yes, even if you’re impatient like me.)
- DEGLAZE WITH WINE, NOT WATER: After removing the onions, pour in that dry white wine and let it bubble hard for 2-3 minutes—don’t just splash it in and walk away. The alcohol needs time to cook off, or your soup will taste sharp and underdeveloped. A quick wipe of the pot with a paper towel before adding broth removes any stuck-on bits, too.
- SKIP THE BROTH BOIL: Once the broth and wine mix hits the pot, simmer gently—not a rolling boil. You’re not making pasta water; you’re building layers of flavor. A fast boil scalds the thyme and dulls the wine’s brightness. Keep it at a barely-there simmer for at least 30 minutes, stirring occasionally to prevent skin from forming.
- BUTTER THE TOAST, DON’T DROWN IT: That final butter-and-thyme swirl is non-negotiable, but don’t drown the gratinéed bread in it. Melt 1-2 tablespoons per bowl, then spoon it over the top—just enough to glaze, not saturate. Overdo it, and you’ll end up with soggy croutons instead of crispy, golden edges. (Your future self will thank you.)
Perfect pairings for this recipe
Wine Pairings
For this rich, cheesy French onion soup, I always reach for a Burgundy Pinot Noir—its earthy notes and subtle fruitiness complement the caramelized onions and Gruyère beautifully. A Chardonnay with light oak (like La Crema) works wonderfully too, balancing the soup’s richness with bright acidity.
Avoid heavy reds like Cabernet—they’ll overpower the delicate flavors. 🍷
Bread Sidekicks
Serve this soup with crusty French bread or baguette slices on the side for extra dipping. I love pairing it with a garlic-herb focaccia—the buttery, herby notes enhance the soup’s depth. For a lighter option, a simple arugula salad with lemon vinaigrette cuts through the richness perfectly. 🥖
Cheese Board Upgrade
Turn your meal into a full experience by adding a cheese board with Comté, Brie, and sharp cheddar—all complement the Gruyère’s nutty flavor. Include cured meats like prosciutto or salami and fig jam or honey for sweet contrast. The board becomes a delicious prelude to the soup. 🧀
Seasonal Garnishes
In summer, top your soup with fresh basil leaves and a drizzle of balsamic glaze for brightness. For winter, I add crispy fried shallots and a sprinkle of freshly cracked black pepper. A few drops of truffle oil add a luxurious touch if you’re feeling fancy. 🌿
Beverage Boosters
Skip the wine? A chilled French lager like Kronenbourg 1664 cleanses your palate between bites. For non-alcoholic options, sparkling apple cider or iced hibiscus tea add refreshing contrast. I also love a hot toddy (bourbon, honey, and lemon) on chilly evenings. ☕
Dessert Pairings
End the meal with something light to balance the richness—crème brûlée or vanilla bean ice cream works perfectly. For a warm option, poached pears in red wine mirror the soup’s French roots. The sweetness resets your palate beautifully. 🍮
Nutrition facts
Frequently asked questions
Can I make this French onion soup ahead of time?
Yes, but with a few key adjustments. Prepare the soup base (onions, broth, and seasonings) up to 2 days in advance and store it in the fridge. When ready to serve, reheat the soup and toast the bread fresh—this keeps the texture perfect. For the cheese topping, add it just before serving to maintain that signature golden crust. The flavors actually improve overnight!
What's the secret to perfectly caramelized onions?
Patience and low heat are everything! Slice onions paper-thin and cook them slowly over low heat for at least 45 minutes, stirring occasionally. The goal is deep golden brown color with minimal moisture. If they stick, add a splash of water and scrape up those flavorful browned bits—they're packed with sweetness!
Can I substitute Gruyère with another cheese?
Gruyère is ideal, but you can use Comté, Emmental, or sharp cheddar in a pinch. For best results, combine two cheeses (like Gruyère + cheddar) for a balanced flavor. Avoid pre-shredded cheese—it burns easily and lacks texture. Freshly grating gives you that perfect melt and golden crust.
Why did my cheese topping turn rubbery instead of crispy?
This usually happens from over-baking or using the wrong cheese. Keep the oven at 375°F and broil for only 3-5 minutes—watch closely! Pre-shredded cheese also causes rubberiness. Use freshly grated Gruyère or a blend, and make sure your bread is properly toasted before adding cheese.
How can I make this vegetarian?
Swap the beef broth for mushroom or vegetable broth and add vegetarian bouillon for depth. Use olive oil instead of butter for caramelizing onions. For the cheese topping, Gruyère still works well—just ensure all other ingredients are plant-based. The flavor will be different but still delicious!
