This rich, flavorful, classic French onion soup is easy-to-make with caramelized onions and garlic, vegetable stock, madeira wine, toasty bread, and melty gruyere cheese. It's the perfect cozy winter meal or for a fancy date night at home!
The key to this traditional French onion soup is caramelizing the onions very slowly (about 2 hours) over low heat. While it may be a bit tedious, it yields a wonderfully rich depth of flavor!
You just need a few simple ingredients to make this super flavorful French onion soup!
- Onions, shallots, garlic - I use a combination of sweet onions, shallots, and garlic to create a more complex depth of flavor, but you can absolutely just use onions if that's all you have! I recommend using sweet onions for the best flavor, but yellow onions will work too!
- Flour - This is used to make a roux and thicken the soup, but you could also use a cornstarch slurry if you want a gluten-free option.
- Wine - Madeira wine is my favorite type of wine to use but sadly it can be difficult to find. My second favorite is sweet marsala wine because it's much easier to find. Sherry or port wine also work great! In a pinch you can use whatever red wine you have on hand but I find the flavor just isn't as rich. However, I don't recommend omitting the wine all together.
- Vegetable stock - I always use my homemade vegetable stock because that's what I keep on hand. But beef stock is also delicious and will add a ton of flavor to your soup if you aren't trying to keep it vegetarian!
- Cheese - Classic French onion soup is made with gruyere cheese (which is my favorite!) but you can also use Swiss, parmesan, or fontina cheese or a combination!
How to Make Traditional French Onion Soup
Thinly slice the onions, shallots, and garlic.
Melt butter in a large stockpot or Dutch oven over low heat.
Add in the onions, shallots, and garlic and season with salt and pepper. Cook slowly over low heat, until deep golden brown and caramelized, about 1 ½ to 2 hours. Be sure to stir occasionally so that the onions don't burn.
Photo 3: After about 30 minutes, the onions should be slightly softened, but still pretty colorless
Photo 4: After about an hour, the onions should be soft and just beginning to brown.
Photo 5: After about an hour and a half, the onions should be pretty well caramelized (but I prefer to keep going a little longer).
Photo 6: After about 2 hours, the onions should have a jammy consistency, be a deep golden brown color with a rich, sweet flavor.
Stir in the flour and cook for 1-2 minutes (this removes the flour taste).
Add in the wine to de-glaze the pan, making sure to scrape up any browned bits from the bottom of the pan.
Stir in vegetable stock, thyme, and bay leaves. Bring to a boil; then reduce heat and simmer, stirring occasionally, until slightly reduced (about 20-30 minutes). Remove and discard thyme sprigs and bay leaves.
Taste and adjust seasonings as desired.
Preheat the oven to broil.
Lightly toast the bread slices for 1-2 minutes until crisp. Remove from the oven and set aside.
Divide soup into oven-safe ramekins or bowls. Place onto a baking sheet. Top with baguette slices to cover the surface of the soup completely then sprinkle with cheese.
Place into oven and broil until the cheese is melted and golden brown, 2-3 minutes.
There are two ways to get that delicious melty cheesy bread on top of your French onion soup. You can divide the soup into oven safe into ramekins or cocottes and then place a slice of toasted bread on top and add cheese, then broil for about 5 minutes.
Or if you don't have oven safe bowls, you can toast the cheese topped bread in the oven and serve them separately.
The flavor of French onion soup deepens as it hangs out in the fridge, so this is a great make a ahead meal! Store in an airtight container in the fridge for up to 5 days.
I recommend reheating the soup in individual bowls in the microwave (or a large pot on the stovetop), and then toasting the bread and broiling as usual. Don't try to reheat cold soup in the oven as it will take far too long.
Yes! Store in a freezer safe container for up to 3 months! Let defrost in the fridge overnight before serving.
In my opinion, nothing is better than onions that have been caramelized super slowly over low heat. They have the most magical depth of flavor! However, if you're trying to speed up the process you can ¼ teaspoon of baking soda to the onions to help them caramelize in about 30 minutes. This is a great article with some different methods.
Cooking the onions over high heat can cause them to taste more bitter. The key to a mellow, sweet French onion soup is caramelizing the onions very slowly over low heat.
Tips for Success!
For best results I always recommend using weight measurements (especially when baking) because it's the most accurate. Kitchen scales are super affordable and also reduce the number of dishes you have to do! However, all my recipes also include US customary measurements for convince. Use this chart to convert measurements for common ingredients!
Substitutions: In all my recipes, I've included substitutions that I know will work, but I cannot guarantee results if you substitute ingredients that I have not recommended. [For example, granulated sugar and honey are indeed both sweeteners but they have very different properties so they can not always be swapped 1:1. Using honey in a cookie recipe that calls for granulated sugar will yield a giant mess.] In the recipe card you'll find links to the specific ingredients/brands that I use.
A note on salt: I almost exclusively use Diamond Crystal Kosher Salt because it's the best all-purpose salt for cooking and baking. If you're not using kosher salt, consult this handy guide for a conversion chart! When in doubt, if you're using table salt just reduce the amount by half for baked goods. When cooking, I prefer to under-salt because you can always add more! If you've over-salted, adding a little bit of acid (like lemon juice) can help.
More Recipes You Might Like!
If you make this recipe, please leave a star rating at the bottom of the page! This provides helpful feedback to both me and other readers. And if you want more delicious, scratch-made recipes you can subscribe to my newsletter and follow along on Instagram, Pinterest, and Facebook!
Classic French Onion Soup
- ¼ cup unsalted butter
- 5 large sweet onions, sliced
- 2 large shallots, sliced
- 4 cloves garlic, sliced
- 1 teaspoon kosher salt
- ½ teaspoon black pepper
- ¼ cup all purpose flour
- 1 ½ cups madeira wine , substitute marsala, sherry, or port
- 5 cups vegetable stock, or beef stock
- 2 bay leaves
- 2 teaspoons fresh thyme
- 4-6 slices French baguette
- 8 ounces gruyere cheese , substitute Swiss or fontina
- Thinly slice the onions, shallots, and garlic.
- Melt butter in a large stockpot or Dutch oven over low heat.
- Add in the onions, shallots, and garlic and season with salt and pepper. Cook slowly over low heat, until deep golden brown and caramelized, about 1 ½ to 2 hours. Be sure to stir occasionally so that the onions don't burn.
- Stir in the flour and cook for 1-2 minutes (this removes the flour taste).
- Add in the wine to de-glaze the pan, making sure to scrape up any browned bits from the bottom of the pan.
- Stir in vegetable stock, thyme, and bay leaves. Bring to a boil; then reduce heat and simmer, stirring occasionally, until slightly reduced (about 20-30 minutes). Remove and discard thyme sprigs and bay leaves.
- Taste and adjust seasonings as desired.
- Preheat the oven to broil.
- Lightly toast the bread slices for 1-2 minutes until crisp. Remove from the oven and set aside.
- Divide soup into oven-safe ramekins or bowls. Place onto a baking sheet. Top with baguette slices to cover the surface of the soup completely then sprinkle with cheese.
- Place into oven and broil until the cheese is melted and golden brown, 2-3 minutes.
- Serve immediately.
The nutritional information on this website is only an estimate and is provided for convenience and as a courtesy only. The accuracy of the nutritional information for any recipe on this site is not guaranteed.