Formula One world champion Lewis Hamilton roared back to form on Saturday to put his Mercedes on pole position for the first French Grand Prix in a decade.
Finnish team mate Valtteri Bottas, who had gone top moments earlier, had to settle for second -- just 0.118 of a second slower -- as the Silver Arrows locked out the front row in style.
Ferrari's championship leader Sebastian Vettel, a point ahead of the Briton after seven of 21 races, qualified in third place.
Sunday's race will be the first French Grand Prix since Magny-Cours in 2008 and the first held at the southern Le Castellet circuit since 1990.
"It feels great to be back in France. It's such a beautiful place. I got a great response from the crowd and I'm delighted to be here for the first time," said Hamilton, who described his final session as 'so-so'.
The pole, in a time of one minute 30.029 seconds, was his third of the year and pushed his Formula One record to 75.
The battle of Formula One's four-times champions has ebbed and flowed, with Vettel taking back the lead in Canada after Hamilton had to make do with an engine reaching the end of its life while rival teams had upgrades.
He finished fifth in Montreal, a favourite track, in his worst showing of the season so far.
Mercedes brought an upgraded power unit to Le Castellet and Hamilton, who has yet to win in France, has been consistently quick.
"I did push everything in the last attempt but pushed too much," said Vettel. "After the first attempt I thought 'with a really amazing lap we have a chance' but P3 I'm happy with because the car should be good in the race."
Red Bull's Max Verstappen qualified fourth with Australian team mate Daniel Ricciardo fifth and Ferrari's Kimi Raikkonen sixth.
Two youngsters were right behind, with Renault's Carlos Sainz seventh fastest and Sauber's Charles Leclerc an eye-catching eighth with a lap that will only have impressed Ferrari.
The 20-year-old Monegasque rookie is already seen as the likely replacement for 2007 world champion Raikkonen at Ferrari next year.
Frenchman Romain Grosjean brought out red flags when he lost control and hit the tyre wall with just under eight minutes remaining of the final session.
He will still start 10th, the highest of the three home drivers.
There was gloom at McLaren, with last weekend's Le Mans 24 Hours winner and double world champion Fernando Alonso managing only the 16th best time. His Belgian team mate Stoffel Vandoorne was 18th.
That was still better than former champions Williams, who had Russian Sergey Sirotkin 19th and Canadian Lance Stroll 20th.
Brendon Hartley will start behind them for Toro Rosso due to penalties arising from a breach of the engine regulations, with the New Zealander using his fourth of the season.
Force India ready to hit back after cash squeeze
Sport in 'stone age' on equal pay issues: Hamilton
MotoGP champion Marquez tests F1 car
Check out F1's new changes for 2018
Is Mallya's Force India F1 team to be sold?