Making engine component changes, Lewis Hamilton and Esteban Ocon started from pit lane, leaving 18 drivers on the grid itself for the start.
14 of the 20 drivers had mediums on at the start, with Albon, Ricciardo, Norris, Zhou and the Alpines going for hards.
Leclerc got a perfect launch, taking the lead. Piastri maintained P2, with Pérez and Verstappen both making moves into turn 2 on Sainz and Russell respectively.
Leclerc, Piastri, Pérez, Sainz, Verstappen, Russell, Alonso, Colapinto, Albon and Bearman was the top 10 after lap 1.
There was a 4s split to the second half of the field. Lance Stroll picked up a puncture, and that caused it. Tsunoda, Norris, Hülkenberg and Ricciardo went at it down the main straight, and the Japanese driver stayed at the front of that pack.
At the start of lap 3, Tsunoda tried to defend into turn 1. Norris got a good exit and passed into turn 2 for 11th, up four spots. Down the second DRS straight, Hülkenberg eased by for P12.
The RB driver continued to fall away, passed by Ricciardo, Gasly and Hamilton as he had an issue with his car. Replays showed Stroll making big contact at turn 4 with Tsunoda on the first lap as he tried to lunge down the inside, resulting in heavy damage for the VCARB. He ultimately retired with sidepod damage.
Norris moved into the points on lap 8 as he eased by Ollie Bearman into turn 1 with DRS. The Haas very nearly ended up in the wall at turn 15 a couple of laps before as he locked up and went deep.
Bearman continued to drop as the Haas cars swapped on lap 10, with Hülkenberg clearly holding a pace advantage.
The first stop in the top 10 came on the next tour as Franco Colapinto pitted from P8, coming out in 15th. Alonso responded a lap later, maintaining track position.
Massively struggling for pace, Verstappen and Russell boxed at the end of lap 12 from P5 and P6, rejoining in P10 and P12.
Pérez followed them on the next lap, coming out in P6, 2s behind Lando Norris. McLaren asked the Brit to back the Mexican up to help Piastri hold on to P2 as he came in two laps later. It worked perfectly as the Australian came out of his stop just in front.
Leclerc boxed at the end of lap 16, holding on to track position from Piastri and Pérez as Albon was between the Ferrari and McLaren.
The Williams of Franco Colapinto worked his way back into the points as he passed the 1-stopping Gasly for P10.
As Piastri cleared Albon on the main straight, Pérez failed to do the same into turn 3, costing him valuable race time as he got stuck behind the Thai for an extra lap.
After getting into the DRS, Piastri sent a very late lunge and made a stunning move down the inside into turn 1 to take the lead from Leclerc.
At the start of lap 23, Carlos Sainz overtook Norris for P5 on his much fresher boots. The Spaniard cleared Albon a lap later.
The two title contenders went at it for P6. Norris defended aggressively down to turns 1 and 3, holding the position. The Dutchman cut turn 15 on the next lap, losing valuable time. It allowed George Russell to close in.
Albon with his tremendous straight-line speed and solid general pace allowed him to stay in front of Norris and Verstappen.
Piastri, Leclerc, Pérez, Sainz, Albon, Norris, Verstappen, Russell, Alonso and Colapinto was the top 10 halfway through.
Albon pitted at the end on lap 31 from P5, coming out in P11 behind Nico Hülkenberg.
At the start of lap 34, George Russell used DRS to ease on by as he took P6 from Max Verstappen, with the Dutchman complaining of the car jumping around once again.
Hülkenberg and Albon moved into P9 and P10 as they passed Colapinto into turns 1 and 3 respectively.
From P5, Lando Norris came in at the end of lap 37, rejoining behind George Russell and Max Verstappen. Behind that, Albon overtook Hülkenberg for 9th on his fresh mediums.
After many laps behind Ollie Bearman, Lewis Hamilton made a superb move into turn 1 to take P12.
Following repeated attempts to pass Piastri into turn 1 and failing, Leclerc ran out of tyres with five laps to go and Piastri ran away.
Norris rapidly caught Verstappen and overtook him easily with four laps to go for P6. He also had the fastest lap. For 10th, Hülkenberg started to run out of tyres, and he was passed by Franco Colapinto.
But the big drama came on the penultimate lap. As Sergio Pérez attempted to pass Charles Leclerc into turn 1, the Monegasque driver defended hard as he sent it up the inside. It allowed Sainz to come through.
However, on the exit of turn 2, things came to blows. Sainz and Pérez went side-by-side as they fought for P3 but made contact, with both ending up in the wall. Russell moved up to P3, Norris, Verstappen, Alonso, Albon, Colapinto, Hamilton and Bearman also gained two crucial spots in the process.
It was a memorable day for the Argentine driver as he scored his first Formula 1 points.
A VSC was deployed, ensuring Piastri could stroke it home to take a second career win ahead of Charles Leclerc.
In the process between the yellow flag and VSC thrown, Hamilton and Bearman snuck on by on Hülkenberg.