The first time of qualifying was logged by Kevin Magnussen on a 1:17.061.
Norris and Bottas quickly beat that as they both did a 1:15.8.
After Hamilton went top, it was soon beaten by the rapid Bulls. Firstly, a 1:14.369 by Perez, which was narrowly beaten by Verstappen on a 1:14.295. Leclerc dropped into P3 on his first flier.
Perez battered his first time by over a second as he logged a 1:13.292, with Sainz equalling his time moments later. Verstappen found himself a tenth adrift.
Home hero Charles Leclerc was the first driver into the 1:12s as he clocked a 1:12.939. Verstappen joined him in that bracket as he went within a tenth of his title rival.
As the track kept getting better, the Ferraris continued to go faster. A 1:12.569 from Leclerc put him 0.047s ahead of Sainz.
Behind the top two teams, it was Alonso Hamilton, Gasly, Norris, Russell and Ricciardo.
Albon, Vettel, Guanyu, Latifi and Bottas found themselves in the bottom five with five minutes to go.
Magnussen, Schumacher and Albon all made big gains on new tyres to go P5, P8 and P9 respectively.
On his final run, George Russell split the Ferraris and Red Bulls to move into P3.
A red flag was brought out with 2:25 remaining as Yuki Tsunoda clipped his left front at the barrier turning into the Nouvelle chicane, leaving him with a puncture.
Ricciardo, Ocon, Latifi, Tsunoda and Zhou found themselves in relegation trouble before the session restarted.
Trouble struck for Gasly and Guanyu as they failed to make the line before the chequered flag fell. A flurry of improvements from the McLarens, Vettel, Ocon and Tsunoda saw the Frenchman end up getting knocked out.
Despite a great effort, Alex Albon just missed out on Q2 as he ended in P16. The Williams and AlphaTauri drivers were joined in the knockout zone by Stroll, Latifi and Guanyu.
Verstappen did a 1:12.551 to kick things off in Q2. However, it was a mighty 1:12.059 from Sergio Perez that really got things going in the session, 0.015s and 0.033s ahead of Sainz and Leclerc respectively. The Monegasque eventually pipped the Mexican by 0.090s as the top two got themselves into the 1:11s.
Norris, Alonso, Hamilton, Russell, Ocon and Vettel completed the top 10 halfway through the session.
The big winner at the end of qualifying was Sebastian Vettel as a storming lap from the four-time World Champion put him in P8 and made it into Q3. Norris, the two Mercedes’ and the Alpines joined the top two teams in Q3.
Coming into the weekend, many expected Valtteri Bottas to be very strong but has had a difficult time and could only manage P12 in the middle segment of qualifying, just behind Yuki Tsunoda. Magnussen, Ricciardo and Schumacher also got knocked out.
An almighty first lap from Charles Leclerc saw the home hero put in a 1:11.376, 0.225s in front of Sainz. Perez narrowly beat Verstappen to 3rd as the Red Bulls were within the same tenth as the Spaniard.
Alonso, Norris, Hamilton, Russell, Vettel and Ocon rounded out the top 10 after run one.
Norris and Russell moved up to 5th and 6th as Red Bull and Ferrari prepared for their final laps.
Ultimately nothing would change though as Sergio Perez crashed in Portier. He lost the rear of the car and the car went backwards into the wall. Carlos Sainz couldn’t avoid the Red Bull and ended up with damage himself.
The red flags were flown and Charles Leclerc’s amazing first lap puts him on pole for his home Grand Prix, with Sainz and Perez provisionally completing the top three. Championship leader Max Verstappen could only manage P4.
In a separate incident, Alonso crashed in Mirabeau after getting too hot into the corner, but it cost him nothing thanks to the incident involving Perez and Sainz.
Norris, Russell, Alonso, Hamilton, Vettel and Ocon rounded out the top 10.