Pierre Gasly started from pit lane as Alpine added more engine components into the pool.
There was a scare for polesitter Lando Norris before the race as he complained about his throttle not working as it should. McLaren changed a throttle damper on the grid.
13 of the drivers started on mediums, with the Astons, Albon and Magnussen on softs. Pérez, Russell and Gasly were on hards.
Piastri got the slightly better launch, taking the lead into turn 1 despite his British teammate trying to squeeze him in the second phase of the start.
The top three went side-by-side down into the corner. Verstappen went off the track but gained an advantage as he overtook Norris off the track as he tried to sweep around the outside.
The Dutchman got his elbows out at turn 2 to fend off Hamilton, giving the place to Norris.
There was a horrible launch for Carlos Sainz, dropping three spots to P7 as Hamilton, Leclerc and Alonso all passed him.
Alex Albon and Kevin Magnussen had incredible starts, jumping up four and five spots to move into P9 and P10 on the soft tyres.
At the start of lap 4, Verstappen eased off on the exit of turn 1, giving Norris the place back in the process.
Haas’ Nico Hülkenberg came in at the end of lap 2, switching to hards. As he was pumping in fastest laps consistently, other teams were forced to change strategy.
That led to a chain reaction in the midfield between laps 6 and 8 as Alonso, Albon, Magnussen, Ricciardo, Ocon, Sargeant and Zhou all pitted. The German undercut all of them to move into P13.
It was good news for Russell and Pérez, moving up to P10 and P11 on the hard tyres.
Piastri, Norris, Verstappen, Hamilton, Leclerc, Sainz, Stroll, Tsunoda, Bottas and Russell was the top 10 following those early stops for the midfield cars.
The Canadian boxed at the end of lap 14 after a good stint on softs, coming out in P16 as a slow 4.1s stop cost him a spot to Magnussen. He worked his way through, passing the Dane and Albon to move into 13th as Valtteri Bottas came out behind.
Lewis Hamilton, who had been sitting very close to Max Verstappen, pitting at the end of lap 16 as he switched to hards. McLaren responded with Lando Norris and stayed ahead. Race leader Piastri came next time around, maintaining position over both.
Verstappen and Sainz were in at the end of lap 21, with the three-time World Champion 7s behind Hamilton on the rejoin, a net P4. The Spaniard rejoined behind Russell and Perez. However, he cleared both with DRS very quickly, and did the same to Yuki Tsunoda to move back into P6.
Leclerc extended his mediums to lap 23, coming out in 5th.
After many laps behind Nico Hülkenberg, Fernando Alonso eventually got by with DRS into turn 1, taking 11th spot. Stroll did the same on the next tour.
Pérez came in on lap 28 but rejoined in P15 in tonnes of traffic. Yuki Tsunoda responded a lap later, and he found himself in P10.
With Albon and Hülkenberg boxing, Pérez cleared Magnussen and Bottas to find himself in P11. He quickly caught Tsunoda on his mediums and made a tidy pass into turn 1 in spite of the Japanese’s efforts.
On lap 35, Hamilton locked up at turn 1, looking like he had gifted Verstappen P3. However, the Dutchman got deep into turn 2 and the 7-time World Champion kept his P3.
Pérez continued his charge, passing Lance Stroll for P8. Alonso’s stop moved him up another spot. George Russell cleared Tsunoda and Stroll to move himself up to 8th, behind the Mexican.
Clearly struggling with the rears, Hamilton pitted at the end of lap 40. Leclerc followed him in as he looked to undercut Verstappen. The Mercedes driver switched to another set of hards, with Leclerc going for mediums.
Piastri had a big moment at turn 11 as he had a snap and went very wide, losing time to Norris in the process. The gap reduced to 2s.
The Sauber of Valtteri Bottas started to struggle on his tyres, and he was passed by Alonso and Ricciardo.
From P2, Lando Norris came in at the end of lap 45, coming out in P4, comfortably ahead of Lewis Hamilton. The Australian came in two laps later but was comfortably behind his teammate as Norris used the fresh tyres effectively.
Piastri’s engineer Tom Stallard had said Norris was pitting to cover Hamilton and everything would be sorted after the stops. Norris was told by his enginner Will Joseph to re-establish the previous positions.
Championship leader Max Verstappen came in at the end of lap 49 after extending, coming out in P5.
Norris, Piastri, Hamilton, Leclerc, Verstappen, Sainz, Russell, Pérez, Tsunoda and Alonso was the order following the Dutchman’s stop.
After rapidly catching Leclerc on much younger tyres, Verstappen eventually made the pass on lap 57 into turn 1 to take P4.
After getting close in turn 2 on lap 62, Verstappen and Hamilton came to blows a lap later. The Dutchman locked up heavily into turn 1 as he tried to go down the inside, and the pair made contact. The Red Bull got airborne and ended up in the turn 1 run-off. Remarkably, he could continue and only lost position to Leclerc.
The back-and-forth continued on the radio between Joseph and Norris, with the Brit eventually slowing on the main straight on lap 68 to give the lead to Piastri.
Piastri brought the car home to take his maiden F1 Grand Prix from Norris and Lewis Hamilton. That’s the seven-time World Champion’s 200th rostrum appearance in F1.
Leclerc, Verstappen, Sainz, Pérez, Russell, Tsunoda and Stroll completed the points scorers in a race that will be remembered for a lot of radio messages.