Hamilton was only fifth in Montreal while Red Bull's Max Verstappen put a series of crash-strewn races behind him to come home third and show he is a class driver when he limits the risks.
Hamilton's main challenger for the fastest time at the Paul Ricard Circuit was teammate Valtteri Bottas, who was the second quickest ahead of points leader Sebastian Vettel in his Ferrari.
F1 is returning to France for the first time in a decade and the Paul Ricard track is hosting its first elite race since 1990.
"I am happy with it but I am always trying for perfection", he said.
Mercedes' Lewis Hamilton during practice in France.
"The game will be on TV here and l am sure my guys will try to keep an eye on both things at the same time - as will I".
"We definitely needed it", Bottas said.
"It would have been nice if it had continued raining all day but unfortunately it dried up just in time for the session", added the 20-year-old, referring to the washed out earlier practice.
Behind the top three teams, Sainz took seventh for Renault, Leclerc did well to take eighth for Sauber, Magnussen's Haas starts in ninth and Grosjean get tenth after bending his auto. They were followed by Ferrari's Kimi Raikkonen, Renault's Carlos Sainz Jr. and Sauber rookie Charles Leclerc, who impressed with his first top-10 time. He was unhurt, but the session was red-flagged to a halt temporarily.
Hamilton's Finnish team mate Valtteri Bottas, also with a new Mercedes engine in his vehicle, was second fastest in the initial stint but seventh in the second after his auto developed a water leak.
"Our performance has usually been so-so on Saturdays, with our average position in qualifying so far this year being 13th", said Alonso. He finished the race in Canada fifth, and saw Vettel turn a 14-point deficit into a one-point lead with a victory.
It may be a Brit in pole, but it was a miserable qualifying for the British teams, with McLaren's Alonso and Vandoorne going out in q1 and starting 16th and 18th respectively, and the Williams of Sirotkin and Stroll in 19th and 20th.
Brendon Hartley will start the race from last place after Toro Rosso had to change his Honda engine on Friday.