Off the line, Verstappen and Hamilton got an even start but the Dutchman made an error in the first corner, ran off into T2 and lost the lead to the Brit. The top 7 stayed the same as Alonso and Norris gained a place as Norris dropped to P10.
Kimi Raikkonen had another excellent first lap as he moved up to P14 from 17th on the grid. Yuki Tsunoda started from the pitlane but moved up to 16th by lap 4.
On lap 11, the McLarens of Ricciardo and Norris finally got past the Alpine of Fernando Alonso with their superior pace as they took 8th and 9th. Alonso’s struggles continued as Vettel overtook him for P10 two laps later.
Stroll, who started 19th, cleared the Alfa Romeos of Raikkonen and moved into P13 by lap 14.
Leclerc pitting on lap 15 allowed him to undercut Ricciardo, Sainz and Gasly as the new tyres proved to be extremely powerful.
Bottas pitting from P3 on lap 18 completely changed the course of this Grand Prix. Verstappen responded a lap later and stayed ahead. Hamilton came in on lap 20 but such was the power of the undercut, Verstappen got the jump to reclaim the lead.
Perez and Norris went long and boxed on lap 25 and rejoined in P4 and P14 respectively.
Verstappen, Hamilton, Bottas, Perez, Vettel, Stroll, Leclerc, Ricciardo, Ocon and Sainz was the top 10 at the halfway stage.
Norris’ fresher tyres allowed him to storm through the field and overtook the Alfas, Ocon, Gasly, Leclerc, Sainz and Ricciardo to move up to P7 by lap 34.
Leclerc’s early stop backfired him as he went from P7 to P12 in the space of a few laps as his hard tyres completely fell away.
Interestingly, Verstappen pitted on lap 33 as Red Bull decided to make a second stop from the lead of the race, dropping to P4 behind the Mercedes’ and Perez. The Mexican quickly got out of the way to let the 23-year-old go after the Mercedes drivers.
Vettel finally boxed on lap 38 from 5th and rejoined in 10th place. He overtook Sainz to move into 9th, as Stroll also got by Sainz and moved into P10.
In the battle for the podium spots, Verstappen nailed Bottas on lap 44 as the Finn made an error at the chicane and opened the door for Verstappen to take P2. With the Finn’s tyres gone, Perez followed through for P3 on lap 49 by going around the outside at turn 11.
The Dutchman gradually caught Hamilton and made the move with DRS on lap 52 of 53 as Red Bull trumped Mercedes on strategy after Mercedes got them in Barcelona.
Verstappen crossed the line to win by almost 3 seconds from Lewis Hamilton. Sergio Perez’s superb first stint allowed him to take P3, ahead of the second Mercedes of Bottas.
Like Perez, Lando Norris’s long first stint paid off as he finished a superb P5, followed home by teammate Daniel Ricciardo in 6th. The Australian finished just ahead of Gasly, Alonso and Vettel. Lance Stroll was the final points scorer.
Ferrari had a terrible day as Sainz finished P11 and Leclerc all the way down in 16th as McLaren gained 18 points in the fight for P3 in the Constructors' Championship.