Formula One world champion Max Verstappen won the Spanish Grand Prix in a Red Bull one-two and seized the overall lead in the standings on an agonising Sunday for Ferrari's luckless Charles Leclerc.
The win ahead of Mexican team mate Sergio Perez completed a hat-trick for Verstappen, his third in a row after Imola and Miami, and sent the Dutch driver six points clear of Leclerc after six races.
Sergio Perez completed a one-two finish for Red Bull as George Russell secured third, following another fine performance from the young Briton, with Carlos Sainz fourth.
Lewis Hamilton dropped from sixth to last but one after an opening-lap collision with Kevin Magnussen.
But the seven-time world champion delivered an impressive comeback to charge his way through the field to fifth - robbed of fourth when he was told to "lift and coast", presumably to save fuel in the closing stages, and Sainz made his way back past.
At a sweltering Circuit de Catalunya on the outskirts of Barcelona, pole-sitter Leclerc raced away from his marks to leave Verstappen in his wake.
The drama then unfolded behind the championship protagonists. Russell, from fourth on the grid, fought his way past a slow-starting Sainz before the Spaniard tagged Perez, the Mexican making contact with Russell's Mercedes. All three escaped without damage, but the same could not be said for Hamilton.
As the seven-time world champion attempted to hold off Magnussen through the right-hander Turn 4 - the scene of his memorable collision with Nico Rosberg here six years ago - the two made contact and both suffered punctures.
Magnussen's Haas bounced across the gravel with Hamilton managing to keep his Mercedes on the asphalt before limping back to the pits for repairs.
"F****** Lewis just rammed me," Magnussen said. "He knew what he was doing."
Hamilton was on the radio, too. "F***. I have been hit," he said, taking on new tyres and dropping to last but one, nearly a full minute behind leader Leclerc.
Hamilton came on the radio again. "I would save this engine guys if I were you," he said, seemingly ready to retire from the race. "I am sorry."
But the Briton was told to continue. "Lewis we still fell we can achieve points here today," said Hamilton's race engineer, Peter Bonnington. "Eighth or maybe better." Bonnington would prove to be right.
Back up front and Hamilton's team-mate Russell found himself in second on the ninth lap when Verstappen slid through the gravel at Turn 4.
The young Briton was soon under intense pressure from the world champion, but he was pulling out all the stops to keep a DRS-less Verstappen in his Mercedes mirrors.
The action came to ahead on lap 24 when Verstappen towed Russell's Mercedes at more than 200mph before jinking to the inside at the opening left-hander and appearing to make the move stick.
But Russell kept his nerve and foot on the gas to move back ahead at the ensuing left hander. Verstappen switched to Russell's left through the right-hander Turn 3 and on the run down to Turn 4 the pair went wheel to wheel, but the Mercedes man held firm.
Leclerc was driving a faultless race when engine gremlins cruelly struck on lap 27. A space was cleared in the Ferrari garage for the Monegasque's wounded machine.
Leclerc's failure elevated Russell to the lead, but Red Bull moved quickly to bring Verstappen in for fresh rubber providing the Dutchman with clean air and a number of speedy laps followed.
By the time Russell stopped on lap 36, and then Perez the next time around, Verstappen was in the lead. Verstappen stopped for tyres a third time with 22 laps remaining, emerging in second before Perez was ordered out of his way.
Verstappen finished 13.072 secs clear of Perez to move six points clear of Leclerc in the championship race ahead of next Sunday's Monaco Grand Prix.
Russell finished half a minute adrift with Sainz fourth and Hamilton fifth. Hamilton moved ahead of Sainz on lap 60 but the Spaniard re-took the British driver on the last lap.