Soups & Stews
This 99 Restaurant French onion soup recipe transforms a weeknight dinner into a golden, bubbling masterpiece with layers of caramelized onions and a cloud of melted Gruyère. The secret lies in slow-cooking onions until they're deep amber and sweet, then simmering them in rich beef broth until every flavor melds perfectly. What sets this apart is the restaurant-quality technique of baking the soup until the cheese topping turns into a crispy, golden crust—just like the version that made 99 Restaurant famous.
What makes this recipe work at home is the balance between traditional methods and practical adaptations. You'll caramelize onions on the stovetop (no oven required), then build depth with beef broth, garlic, and thyme before finishing in the oven. The Gruyère topping isn't just melted cheese—it's a golden, bubbling blanket that adds texture and richness. This is the kind of soup that feels indulgent yet comes together with straightforward steps, making it perfect for impressing guests without spending hours in the kitchen.
The result is a bowl of soup that's warm, comforting, and visually stunning—with deep caramelized onions peeking through the golden cheese crust. Each spoonful delivers layers of flavor: sweet onions, savory broth, and the nutty richness of Gruyère. The best part? It smells like a Parisian bistro while you're cooking, and the aroma alone will have everyone gathering around the table. This is the French onion soup you've been craving, made approachable for home cooks.
Serve with crusty bread for dipping into every last drop of that flavorful broth. The recipe scales beautifully for parties, and leftovers reheat just as well—though you might not have any left to reheat. Let's get started on creating your own restaurant-quality bowl of French onion soup.
Ingredients for 99 restaurant french onion soup
Sweet caramelized onions, rich Gruyère, and a touch of wine—this is your French bistro in a bowl.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 4 whole | Sliced into 1/4-inch pieces |
| Unsalted Butter 🧈 | 4 tbsp | European-style preferred |
| Beef Broth 💧 | 6 cups | Homemade or quality store-bought |
| Garlic Cloves 🧄 | 4 cloves | Minced, not powdered |
| Fresh Thyme 🌿 | 1 tbsp | Leaves only, chopped |
| Gruyère Cheese 🧀 | 1 ½ cups | Freshly grated, not pre-shredded |
| Baguette 🍞 | 1 whole | Crusty, sliced into 1/2-inch pieces |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| White Wine 🍷 | ½ cup | Dry, like Chardonnay |
| Olive Oil 🫒 | 1 tbsp | For finishing |
The onions are the star here. Yellow onions work best—they caramelize more evenly than red or white. Grab a few extra if you're nervous about slicing (they keep for weeks). European-style butter has more fat, which helps create that deep golden crust. I always grab mine from Whole Foods or the fancy grocery store—it's worth the splurge for this recipe. If you're short on time, pre-sliced onions from the salad bar work in a pinch (just pat them dry first).
No beef broth? Vegetable broth with a bouillon cube gets you close, though it won't be as rich. Fresh thyme is ideal, but dried thyme at one-third the amount works if that's what you've got. The white wine adds depth—dry white like Chardonnay is best, but a splash of apple cider works if you're avoiding alcohol. Gruyère is non-negotiable for that nutty flavor, but Comté or Emmental can stand in if you're in a bind. Just grate it yourself—pre-shredded cheese has anti-caking agents that ruin the texture.
This soup reheats beautifully—honestly tastes better the next day once everything melds. Store in the fridge for up to 5 days, or freeze portions for 3 months. The bread topping can be toasted fresh or baked alongside the soup. I always make a double batch—leftovers make amazing lunches or a quick dinner. The cheese crust gets crispier when reheated, so it's worth the extra minute in the oven.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just onions, butter, and broth in one pot, simmering until the kitchen smells like a Parisian bistro. No extra dishes, no fuss, and that golden caramelized onion layer? Pure reward.
- Caramelized Crunch: That slow-cooked onion base is where it all happens—deep, sweet, and slightly crispy at the edges. The garlic and thyme tie it together like a warm hug, and honestly? It’s the kind of flavor that makes you want to linger over a bowl.
- Weeknight to Dinner Party: Between us, this is my go-to for lazy nights and when I’m hosting. Double the batch, pop it in the oven with toasted bread, and suddenly you’ve got a restaurant-worthy dish that feels effortless. (Yes, even on a Tuesday night.)
- Budget-Friendly Leftovers: A single onion and a stick of butter stretch into multiple servings—perfect for meal prep or feeding a crowd without breaking the bank. Reheat with a splash of broth, and it’s like the first time all over again. My wallet and my taste buds thank me.
Step-by-step instructions for French onion soup
Here's how to recreate that perfect balance of caramelized onions and gooey Gruyère.
Caramelize the Onions Slowly
Heat 2 tablespoons of the unsalted butter in a large, heavy pot over medium-low heat. Add half of the sliced yellow onions and cook, stirring occasionally, for 30 minutes. You're looking for deep golden color—not brown, but that rich caramel hue. This patience pays off with intense onion flavor.
After 30 minutes, add the remaining onions and the remaining 2 tablespoons butter. Continue cooking for another 20-25 minutes, stirring every 5 minutes. The onions should be soft, sweet, and completely transformed. If they start to stick, add a splash of water and scrape up any browned bits—they're packed with flavor. Don't rush this step; it's the soul of the soup.
Build the Flavor Base
Once the onions are perfectly caramelized, increase the heat to medium and add the minced garlic cloves. Cook for 1 minute until fragrant—don't let it burn. Pour in the ½ cup white wine and let it simmer for 2-3 minutes until mostly evaporated. This deglazes the pot and adds depth to the broth.
Stir in the 6 cups beef broth, 1 tablespoon chopped fresh thyme, 1.5 teaspoons salt, and ½ teaspoon black pepper. Bring to a gentle simmer and let it cook uncovered for 15 minutes. The broth should be flavorful but not reduced too much. Taste and adjust seasoning if needed—this is your chance to balance the flavors before adding the bread.
Prepare the Bread Topping
While the soup simmers, slice the whole baguette into ½-inch thick pieces. Brush both sides of each slice generously with the 1 tablespoon olive oil. Arrange the slices on a baking sheet in a single layer, oil-side up. Broil for 2-3 minutes until golden brown and crispy. Keep an eye on them—they burn quickly.
Remove the broiled bread from the oven and immediately sprinkle ½ cup of the freshly grated Gruyère cheese on each slice. The cheese should melt slightly from the residual heat, creating a perfect base for the final topping. Set aside while you finish the soup.
Assemble and Melt the Cheese
Ladle the hot soup into 4 oven-safe bowls, filling each about ¾ full. Place one of the cheese-topped baguette slices on top of each bowl, pressing down gently so it floats. Sprinkle the remaining 1 cup Gruyère cheese evenly over all the bread slices. The cheese should look like a snowy blanket over the golden bread.
Transfer the bowls to a 425°F preheated oven and bake for 5-7 minutes until the cheese is fully melted and bubbly. Watch closely—the cheese should turn golden brown in spots, creating that perfect restaurant-quality crust. Remove from the oven and let sit for 1 minute before serving to allow the cheese to set slightly.
Pro Tips For Making 99 Restaurant French Onion Soup
- CRISP THE ONIONS LOW AND SLOW: I used to blast those onions on high heat like I was in a hurry, but that just burns the edges and turns them bitter. Instead, keep the pan on medium-low and stir every 30 seconds—you’re aiming for deep golden caramelization, not charred bits. This is where the soup’s depth comes from, so don’t rush it.
- USE A MIX OF ONION RINGS AND CHOPS: Half the onions in thick rings, half in thin slices. The rings hold their shape better for texture, while the slices melt faster into the broth. I learned this the hard way—too many whole rings and you’ve got a soup full of chewy bits; too many slices and you lose that restaurant-quality mouthfeel.
- SALT THE BROTH BEFORE SIMMERING: Skip the salt at the end. Since you’re using unsalted butter and homemade broth (hopefully), season the broth before it hits the stove—aim for 1.5 teaspoons per quart. Taste it cold first; you can always adjust, but fixing underseasoned soup later is a headache.
- TOAST THE THYME LEAF BY LEAF: Don’t just toss in whole sprigs and forget about them. Pull the thyme apart, strip the leaves, and toss them in the hot butter for 30 seconds before adding onions. This releases their oils and aroma instantly—way more impactful than dumping them in later. (Yes, even if you’re impatient like me.)
Make-ahead tips for leftovers
Prep Ahead Strategy
Caramelizing onions takes patience, so tackle this step first—it keeps for 3 days in an airtight container in the fridge. Store the onions in their rendered butter (about 1 cup) to preserve their sweetness. When ready to assemble, simply reheat the onions in a skillet over low heat for 5 minutes with a splash of water to loosen them. This shortcut saves 1 hour of active cooking time later. 💡
Broth Prep
Simmer the beef broth with thyme, garlic, and seasonings in advance and store it in the fridge for up to 5 days. When you're ready to serve, just reheat it gently on the stove—no need to bring it to a full boil. I like to add a ½ cup of the caramelized onions to the broth while reheating to infuse even more flavor. This step ensures your soup will be rich and aromatic without last-minute stress. ⏰
Cheese Prep
Grated Gruyère loses moisture quickly, so grate it fresh just before baking. However, you can prep the bread topping in advance by slicing the baguette and storing it in a paper bag at room temperature for up to 24 hours. When ready to assemble, simply brush with olive oil and toast as directed. For extra convenience, toast the bread slices ahead of time and store them in the fridge—just reheat in the oven for 2 minutes before adding cheese. ✨
Freezer-Friendly Assembly
Assemble the soup completely (without baking) and freeze it in individual portions. Use freezer-safe bowls or heavy-duty plastic wrap. When ready to serve, thaw in the fridge overnight, then bake as directed. The cheese topping will still melt beautifully, though it may need an extra 1-2 minutes in the oven. This method works best for 1 month of storage—just avoid freezing the bread topping separately, as it loses texture. ❄️
Make-Ahead Serving
For parties or gatherings, prep all components separately and store them in labeled containers. Keep the caramelized onions, broth, and bread topping in the fridge, and grate the cheese just before baking. Assemble and bake the soup directly in the oven-safe bowls you plan to serve from—no extra dishes to clean! I've served this way for holiday dinners, and it's always a crowd-pleaser with minimal last-minute effort. 💫
Nutrition facts
Frequently asked questions
Can I substitute Gruyère with another cheese?
Gruyère is ideal for its nutty flavor and perfect melting qualities, but you can use Comté or Emmental in a pinch. Avoid pre-shredded cheese—the anti-caking agents prevent that golden crust. For a vegetarian option, try vegan Gruyère or a mix of mozzarella and sharp cheddar, though the texture will differ slightly. The key is fresh grating for maximum flavor!
How do I prevent the bread from getting soggy?
Toast the bread slices until golden and crispy before adding cheese, then place them on top of the soup just before baking. For extra insurance, brush the bread with olive oil before toasting. The cheese should melt quickly in the oven, creating a protective barrier. If your bread softens too much, broil for 1-2 minutes at the end to crisp it up again.
Can I make this soup without wine?
Replace the ½ cup white wine with ½ cup apple cider, chicken broth, or even a splash of lemon juice. The wine adds depth, but these substitutes work well for a non-alcoholic version. If using broth, reduce it by ¼ cup to maintain the right liquid balance in the soup.
What's the best way to reheat leftovers?
Reheat in the oven for the best results: Place the soup in 425°F for 5-7 minutes until the cheese is bubbly. For stovetop reheating, warm gently over low heat and cover to prevent evaporation. The cheese topping may not get as crispy, but the flavors will still be rich and comforting. Leftovers actually improve as the flavors meld over time!
Why did my onions burn instead of caramelize?
Caramelizing onions requires low and slow heat—never rush this step! If they burn, reduce the heat further or add a splash of water to deglaze. Stir frequently to distribute heat evenly, and avoid overcrowding the pan. The goal is deep golden color, not browned bits. Patience is key—this step can take 45-60 minutes total.
