George Russell and Daniil Kvyat went into qualifying knowing they would start at the back of the grid following component changes for both drivers.
Sergio Perez logged the first time of qualifying with a 1:34.130. Carlos Sainz put in the first properly quick lap of the session after posting a 1:32.010.
When the big guns came out, it was close. A mere 0.097s covered Bottas, Hamilton and Leclerc.
Perez, Magnussen, Russell, Kvyat and Kubica were in the bottom five ahead of the final runs.
Track evolution saw the times tumble at the end of the session. Hulkenberg, Ricciardo, Perez, Raikkonen, Norris and Sainz all made big improvements to end up inside the top 10. Vettel finished 10th, with Verstappen down in P14 as they didn’t do a second run.
Kvyat, Stroll, Grosjean, Russell and Kubica dropped out in Q1 after a frantic ending.
Valtteri Bottas banged in a 1:30.024 on the mediums to kick Q2 off. Hamilton put in a monstrous time to beat his stablemate by 0.504s. The Finn responded on a second push lap on the same tyres and reclaimed P1 by less than a tenth.
Leclerc, Vettel, Verstappen and Sainz completed the top 6 – all four of them also using the medium compound.
The Ferraris improved late in the session, with Vettel going 2nd and splitting the Mercedes boys. Norris, Sainz, Verstappen and Ricciardo all got through to Q3 on the medium tyre, too. Giovinazzi did a magnificent lap to make it through, ahead of home hero Pierre Gasly, who made Q3 by only 0.040s. The Italian and Frenchman both did their best times on the softs.
Albon, Raikkonen, Hulkenberg, Perez and Magnussen were the Q2 casualties.
On the first runs of Q3, Hamilton drew first blood in the Mercedes battle. A 1:28.448 from the Brit put him ahead of the Finn by 0.157s. Leclerc, Verstappen and Sainz completed the top 5 after Vettel aborted his first lap. The German was complaining about upshift problems with his Ferrari.
Hamilton improved on his final flier by over a tenth to seal pole. Bottas failed to improve but kept P2. Leclerc, Verstappen, Norris and Sainz all improved and sealed spots 3 to 6.
Sebastian Vettel was a terribly disappointing P7, with Ricciardo, Gasly and Giovinazzi completed the top 10.