Nico Rosberg stormed to his first victory of the season as he pulled off the "complete weekend" he had targeted to win the Spanish Grand Prix in Barcelona.
- Related Content
The Mercedes driver had been unable to live with the form of team-mate and reigning champion Lewis Hamilton until Sunday's race at the Circuit de Catalunya, but a strong showing and a better strategy gave him fresh impetus in the championship battle.
Hamilton made a poor start and also suffered a delay during his first pit-stop but still maintained a record of finishing in the top two in the last 12 grands prix as Ferrari's Sebastian Vettel took third.
As is often the way in Barcelona, the pole sitter ended up taking the chequered flag as Rosberg became the 19th driver to convert pole into a race victory in the 25 grands prix held here.
He was also the ninth successive different winner of the Spanish Grand Prix and closed the gap to championship leader Hamilton to 20 points heading into Monaco, having declared earlier in the week he was ready to put everything together for the first time this year.
He took the flag a full 17.5 seconds ahead of Hamilton and was pleased to put everything together.
"It was a perfect weekend," Rosberg said.
"Being on pole and winning the race. Finally I got the great start that I needed and I'm very happy. It has been a while coming.
"I'm just enjoying the day today, winning here was great so I will enjoy that together with the team and then look forward to the next race."
Hamilton, who started second, had said after qualifying that he needed to be 'fresher' than Rosberg to beat him off the line but instead he had a poor start, falling behind Vettel and having to fend off Valtteri Bottas to stay third.
He pitted for the first time at the end of lap 14, by which time his race engineer Peter Bonnington had already suggested a move to 'Plan C', but a problem with the left-rear tyre left him further back - especially when Vettel stopped just a lap later and was three seconds quicker in his box.
There were also no issues for leader Rosberg as he came in - with Kimi Raikkonen temporarily moving to the front.
As the field levelled itself out Hamilton was told to push but replied that it was 'almost impossible' to catch Vettel - asking his team to come up with a different solution.
But the championship leader did reel in the Ferrari with some ease, although he failed to pass before taking his second stop on lap 32.
He opted for the hard compound tyre and came out behind the second Ferrari of Raikkonen but made much easier work of passing the Finn on course to setting a fastest lap, almost two and a half seconds faster than Vettel.
Making great gains on the leading three, Hamilton soon caught and passed Bottas and again set off after the Ferrari of Vettel, who ducked into the pits for his second and final stop.
Rosberg's second stop came on lap 45 and he yielded the lead to Hamilton - knowing he would benefit when his rival had to stop again.
That third stop came 15 laps from the end of the race with Hamilton left to chase after his team-mate on a much-fresher set of option Pirelli tyres - closing all of the time but being told with eight laps to go that there was little point fighting tooth and nail as any attempt at catching and passing Rosberg would prove futile.
Vettel's decision not to pit and cover off Hamilton's second stop meant he was in no position to fight against the marauding Mercedes in the closing laps and the German had to settle for the final step on the podium.
Bottas took fourth place, holding off a late push from Raikkonen with Bottas' team-mate Felipe Massa sixth.
Both Red Bulls finished in the points after a disappointing qualifying, with Daniel Ricciardo seventh and Daniil Kvyat 10th.
Kvyat could have finished higher but was overtaken by home favourite Carlos Sainz in a wheel-to-wheel moment on the final lap as the latter took two points on his first Spanish Grand Prix for Toro Rosso.
Romain Grosjean took four points with an eighth-placed finish for Lotus as the second Toro Rosso of Max Verstappen missed out on the top 10 after he was also passed in the final laps by team-mate Sainz.
Jenson Button's 100th grand prix from McLaren was delayed after he failed to start in Bahrain - and it turned out to be an instantly forgettable as he dropped down to 18th after two laps - coming in on lap 11 after complaining of an unbalanced rear.
Both he and team-mate Fernando Alonso had hoped for a better showing as the team went in search of their first points of the season.
But Alonso, in front of his home fans, saw his race end in spectacular fashion on lap 28 as his brakes failed as he came into the pits - wiping out the front jack, with the jack-man just able to jump clear before being hit.
Pastor Maldonado, the winner here in 2012, started well and was soon up to seventh but his race was ruined when he lost a section of his rear wing in turn two - eventually leading to the retirement of his Lotus.
Felipe Nasr took 12th place for Sauber with team-mate Marcus Ericsson down in 14th as the Force India's of Sergio Perez and Nico Hulkenberg finished 13th and 15th, respectively.
Will Stevens had enjoyed a dominant weekend over Manor team-mate Roberto Merhi and continued that as he won the battle of the back-markers by some distance.