French Onion Soup
This French Onion Soup is a comforting, deeply flavored version of the classic that highlights slowly caramelized onions, a rich broth, and a crisp, cheesy topping. The long, gentle caramelization of onions builds sweet, savory depth while a splash of wine, tamari, and a hint of balsamic round out the flavor. Topped with day-old French baguette cubes and melted Gruyère, it’s a satisfying bowl-perfect for chilly evenings or whenever you want a hearty, warming meal.

The key to great French onion soup is patience when caramelizing the onions. Allowing them to cook low and slow brings out their natural sweetness and creates a jammy texture that becomes the foundation of the soup. From there, a little wine and flour help build body, and a long simmer lets the flavors meld. Finishing under the broiler creates a golden, bubbling cheese crust that turns every spoonful into a combination of silky soup, chewy bread, and nutty melted cheese.

Ingredients
- 3 tablespoons unsalted butter
- 3 pounds yellow onions, halved and thinly sliced (about 4 large onions)
- 3 garlic cloves, minced
- 1 teaspoon kosher salt, plus more to taste
- 1 teaspoon freshly ground black pepper
- 1 cup dry white wine
- 2 tablespoons gluten-free 1:1 all-purpose flour (or regular all-purpose flour)
- 6 cups beef broth (or substitute vegetable broth for a vegetarian version)
- 1 tablespoon tamari (or soy sauce)
- 1 tablespoon balsamic vinegar
- 1 bay leaf
- 6–8 sprigs fresh thyme, tied into a bundle
- 1 small French baguette, day-old, cut into 1-inch cubes
- 1 cup grated Gruyère cheese

Step-by-step
Step One: Caramelize the onions
Heat a large pot or Dutch oven over medium heat. Melt the butter, add the sliced onions, and cook slowly, stirring frequently, for about 30–40 minutes. Start by stirring every 3 minutes for the first half of the time; once the onions begin to collapse and release moisture, stir more often—about every minute. If the onions begin to stick, add a splash of water or broth to deglaze the pan and lift the browned bits. Continue until the onions are soft, jammy, and a deep golden-brown.

Step Two: Add the aromatics
Add the minced garlic, kosher salt, and freshly ground black pepper. Sauté for another 2 minutes to release the garlic aroma without burning it.
Step Three: Build the body
Pour in the dry white wine and bring the mixture to a boil briefly to evaporate most of the alcohol and concentrate flavor. Stir in the flour and cook for a minute or two to remove the raw flour taste and allow the mixture to thicken slightly.
Step Four: Simmer the soup
While stirring, gradually pour in the beef broth, then add the tamari and balsamic vinegar. Slip in the bay leaf and the thyme bundle, raise the heat to bring the soup to a rapid simmer, and cook uncovered for about 10 minutes. This short reduction helps the flavors meld and gives the soup a fuller body. Stir occasionally to prevent sticking and to blend the flavors evenly.

Step Five: Finish the broth
Remove the pot from the heat and discard the bay leaf and thyme bundle. Taste and adjust seasoning with additional salt if needed (about 1/2 teaspoon more is typical, depending on the broth used).
Step Six: Top and broil
Preheat the oven broiler. Arrange four oven-safe bowls or crocks on a sheet pan. Ladle hot soup into each bowl, add a generous layer of baguette cubes, and top with grated Gruyère—about 1/4 cup of cheese per bowl. Place the sheet pan under the broiler for 2–4 minutes until the cheese melts, bubbles, and takes on a golden-brown color. Watch closely to avoid burning.
Step Seven: Serve
Garnish with a sprig of fresh thyme and an optional sprinkle of flaky salt. Serve immediately while the cheese is melty and the soup is hot.

Recipe FAQs
Can I make this soup vegetarian?
Yes. Substitute the beef broth with a robust vegetable broth to make the soup vegetarian-friendly. Umami-rich additions like a splash of tamari and a little extra balsamic help maintain depth of flavor.
Is caramelizing the onions difficult?
No. Caramelizing onions is more time-consuming than technically difficult. Keep the heat moderate, stir regularly, and be patient—the onions will slowly transform into a deeply flavored base for the soup.
Tips, Variations, and Storage
- Use day-old or lightly toasted baguette so the bread holds up under the hot soup and broiler.
- Gruyère is traditional for the finishing layer, but Emmental or a mild Swiss cheese work well if needed.
- For a gluten-free option, use a gluten-free baguette and a gluten-free flour to thicken if desired.
- Store leftovers in the refrigerator for up to 3 days. Reheat gently on the stovetop; add fresh bread and cheese and broil just before serving.
Nutrition (approximate)
Per serving: Calories: 608 kcal; Carbohydrates: 69 g; Protein: 25 g; Fat: 22 g; Saturated Fat: 13 g; Sodium: 2813 mg; Fiber: 8 g. Nutrition is automatically calculated and should be used as an estimate.
Additional Info
Servings: 4 people
Author: Alex Snodgrass
Food Photography and Styling by Eat Love Eats.