Melt the butter and olive oil together in a large Dutch oven over medium heat.
Add the sliced onions, salt, and black pepper. Cook, stirring frequently, for 25–30 minutes until the onions are deeply golden and caramelized. Add the sugar after about 10 minutes.
Stir in the minced garlic and cook for another 1 minute until fragrant.
Sprinkle the flour over the onions and stir to coat. Cook for a minute.
Gradually stir in the beef broth, scraping up any browned bits from the bottom of the pot. Add the white wine, Worcestershire sauce, bay leaf, and thyme.
Bring the soup to a simmer. Cover partially and let it simmer gently for 20–30 minutes, stirring occasionally.
Meanwhile, preheat your oven’s broiler. Arrange the baguette slices on a baking sheet and toast under the broiler until golden, about 1–2 minutes per side.
Remove the bay leaf and thyme sprigs from the soup.
Ladle the soup into oven-safe bowls. Place a toasted baguette slice on top of each bowl and sprinkle generously with provolone and mozzarella cheese.
Place the bowls under the broiler for 2–3 minutes, or until the cheese is melted, bubbly, and slightly golden.
Serve hot and enjoy!