Oscar Piastri took a commanding Bahrain Grand Prix victory to close right in on McLaren team-mate Lando Norris in the Formula 1 world championship, as Norris only salvaged a podium right at the end of a scrappy race.
Piastri was only briefly headed during the first pitstop sequence as he controlled proceedings masterfully throughout for his second win of 2025.
Norris quickly turned his disappointing sixth place on the grid into third place behind Piastri and George Russell's Mercedes with a great start and strong first corner, but immediately had a five-second penalty looming for having started too far forward on his grid slot.
He mostly made up the cost of that penalty by taking his first pitstop relatively early and benefitting from the night's strong undercut effect on fresh tyres.
But having held onto a net third at first, he was overtaken just before half-distance by Charles Leclerc's Ferrari - which had lost ground from second on the grid on medium tyres in the first stint as most ran softs, then came into its own on fresh mediums in stint two after a late first stop.
Leclerc's team-mate Lewis Hamilton followed the same strategy and went from an anonymous first stint in a lower top 10 queue to actually passing Norris for fourth at the restart following a safety car period for debris that allowed most to make cheap final pitstops.
Norris's repass of Hamilton took him beyond track limits and McLaren suggested he hand the place back again.
It didn't take long for Norris to overtake Hamilton again, but passing Leclerc - now on the less favoured hard tyre - for third took much longer, with Norris repeatedly frustrated by the Ferrari's strong defence.
With four laps to go, Norris finally successfully cleared Leclerc and set off after second-placed Russell.
He couldn't pass the Mercedes on the road despite a last lap effort, but may yet gain the position post-race as Russell is being investigated for DRS misuse.

His Mercedes appeared to be suffering from a variety of electrical gremlins that led to plenty of radio traffic and instructions, and to Russell repeatedly vanishing from the timing screens.
Russell said post-race that amid those issues he hit the radio button but it the DRS opened instead.
Ferrari's muted final stint on hard tyres meant the promise of its mid-race charges faded to fourth and fifth for Leclerc and Hamilton.
Max Verstappen finished sixth having been last at one point during a tough race for Red Bull in which two slow pitstops - one delayed by a lighting gantry issue that also hit team-mate Yuki Tsunoda and one by a stuck wheel - plus a lack of general pace left him highly frustrated over team radio.
He only made it into sixth by overtaking Pierre Gasly's Alpine on the final lap.
Haas achieved a shock double-points score with Esteban Ocon in eighth and Ollie Bearman coming from the back of the grid to 10th.
An early first pitstop jumped qualifying crasher Ocon from his initial 12th to sixth thanks to the strong undercut and he held his own once in the top 10.
Tsunoda's race to ninth featured a clash with Carlos Sainz that prompted the safety-car-inducing debris and ultimately led to the Williams retiring with damage - though not before Sainz had picked up a penalty for dive-bombing Kimi Antonelli's Mercedes off the road.
That plus a potential three-stop strategy being sent awry by the safety car timing left Antonelli outside the points in 11th in a queue led by eighth-placed Ocon.
Bahrain GP results
- Oscar Piastri (McLaren)
- George Russell (Mercedes) +15.4s
- Lando Norris (McLaren) +16.2s
- Charles Leclerc (Ferrari) +19.6s
- Lewis Hamilton (Ferrari) +27.9s
- Max Verstappen (Red Bull) +34.3s
- Pierre Gasly (Alpine) +36.0s
- Esteban Ocon (Haas) +44.2s
- Yuki Tsunoda (Red Bull) +45.0s
- Ollie Bearman (Haas) +47.5s
- Kimi Antonelli (Mercedes) +48.0s
- Alex Albon (Williams) +48.8s
- Nico Hulkenberg (Sauber) +53.4s
- Isack Hadjar (Racing Bulls) +56.3s
- Jack Doohan (Alpine) +57.8s
- Fernando Alonso (Aston Martin) +60.3s
- Liam Lawson (Racing Bulls) +64.4s
- Lance Stroll (Aston Martin) +65.4s
- Gabriel Bortoleto (Sauber) +66.8s
DNF: Carlos Sainz (Williams)