Oscar Piastri held off Charles Leclerc to claim his second win of the Formula 1 season in a dramatic Azerbaijan Grand Prix.

And the Australian's victory means McLaren have leapfrogged Red Bull in the constructors' championship after an impressive run.

Leclerc started on pole in Baku for the fourth time in a row, and, after winning in Monza last time out, put himself in a good position to get a second consecutive win after a strong start.

However, Piastri took advantage on a straight in the 20th lap, stealing in front of the Ferrari, who he managed to hold off in the latter stages despite a spirited fightback from Leclerc.

Meanwhile, Lando Norris started in P15 after struggling in qualifying, but after a brilliant opening stint, he then slipped in front of his championship rival Max Verstappen with two laps remaining, eventually finishing fourth.

There was still a thrilling finish, as Sergio Perez, who has scored the most points in the Azerbaijan Grand Prix, and Carlos Sainz both pushed to clinch the final podium spot and tangled in a huge crash on the penultimate lap, taking both of them out of the race.

George Russell benefitted from that to claim third, while his Mercedes team-mate Lewis Hamilton finished in ninth after a pit-lane start for taking a new engine ahead of the race.

Data Debrief: McLaren gain the edge

McLaren now have a 20-point lead over Red Bull in the championship. It is the first time the team have held the lead after at least 17 Grands Prix since Brazil in 2005.

It was quite the result for Piastri, who has now finished in the top two in four of his last five F1 races (winner in Hungary and Azerbaijan, runner-up in Belgium and Italy). That is more than he managed in his previous 34 Grand Prix.

Norris will be pleased with his own exploits though, given where he started on the grid, and by nipping in front of Verstappen, he keeps his hopes alive in the drivers' championship. The gap is now 59 points.

Top 10

1. Oscar Piastri (McLaren)

2. Charles Leclerc (Ferrari)

3. George Russell (Mercedes)

4. Lando Norris (McLaren)

5. Max Verstappen (Red Bull)

6. Fernando Alonso (Aston Martin)

7. Alex Albon (Williams)

8. Franco Colapinto (Williams)

9. Lewis Hamilton (Mercedes)

10. Oliver Bearman (Haas)

CHAMPIONSHIP STANDINGS

Drivers'

1. Max Verstappen (Red Bull) - 313

2. Lando Norris (McLaren) - 254

3. Charles Leclerc (Ferrari) - 235

Constructors'

1. McLaren - 476

2. Red Bull - 456

3. Ferrari - 425