It is Max Verstappen's third consecutive victory after Charles Leclerc’s Ferrari broke down while he was comfortably in front.
Max Verstappen has reaped the reward of Charles Leclerc's misfortune to rack up his third straight win this season in the Spanish Grand Prix and move top of the Formula One drivers' standings.
Sergio Perez took second for a Red Bull 1-2 at the Montmelo circuit on Sunday behind the world champion where in 2016 Verstappen had opened his F1 account as a teenager.
Leclerc was sitting comfortably in the lead from pole until lap 23 when a sudden loss of power proved fatal to his Ferrari.
The man from Monaco arrived in Catalonia 19 points in front in the title race, but left it six points behind Verstappen ahead of his home race next weekend.
Hamilton takes fifth position
Verstappen had to overcome being blown off the circuit and into the gravel by a gust of wind early on and some technical niggles.
"Difficult beginning but a good end! I tried to stay focussed, which is not always easy," said the Dutch driver, who hit the front late on after passing Perez who had been instructed to relinquish the lead over the team radio.
"I am happy for the team. We need to speak later," said Perez who became a father again after the last race in the United States.
Mercedes showed improved form after a bumpy start to the season with George Russell claiming third.
Lewis Hamilton in the other Mercedes threaded his way through the field after being forced into the pits shortly after the start with a puncture to take fifth.
"Today was very tough," recounted Russell.
"I gave it everything I could, just so proud to be standing here as the guys have worked so hard. Pleased to be able to bring it home in P3, lots of points on the board for us."