Formula One world champion Max Verstappen won the Spanish Grand Prix in a Red Bull one-two, to take over at the top from Ferrari's luckless Charles Leclerc, who retired with an engine failure while leading.
Mexican Sergio Perez finished a dutiful second, 13 seconds behind but with the consolation of a bonus point for fastest lap, after being told to let his teammate pass for a third victory in a row after Imola and Miami.
The 24-year-old Dutch driver is now six points clear of Leclerc after winning four of six races - all those he has finished.
Britain's George Russell came third for a revived Mercedes and after going wheel-to-wheel with Verstappen early on in a thrilling display of defensive driving as they battled for second place behind Leclerc.
Ferrari's Carlos Sainz was fourth, after fighting back from a slow start and a spin into the gravel, but it was scant reward for a team who had brought upgrades to try and turn the tables on Red Bull.
Leclerc was leading comfortably from pole position but a sudden loss of power before the halfway mark led to his retirement in the pits.
The Monegasque waved to the capacity Circuit de Catalunya crowd but from then on could only watch his 19-point advantage evaporate in the searing heat.
Verstappen also suffered intermittent problems with his car's drag reduction system (DRS), leading to plenty of cursing over the radio, and he went off into the gravel at turn four on lap eight.
Seven-time world champion Lewis Hamilton was fifth for Mercedes with a fine recovery drive after an opening lap collision with Kevin Magnussen's Haas dropped him to 19th.
He was passed by Sainz on the closing laps after Mercedes warned of a potentially terminal cooling issue.
Alfa Romeo's Valtteri Bottas was sixth, ahead of Alpine's Esteban Ocon and McLaren's Lando Norris in eighth.
Spain's twice world champion Fernando Alonso finished ninth in front of his home fans, after starting at the back of the grid, and AlphaTauri's Yuki Tsunoda collected the final point.
Reuters