Lewis Hamilton won for the second race in succession by dominating an eventful Spanish Grand Prix.
The Mercedes driver was supreme at the front in a race that featured a heavy first-lap crash, two caution periods and a number of spins and collisions.
Hamilton's win moves him into a 17-point championship lead, with title rival Sebastian Vettel fourth on Sunday following questionable strategy calls from his Ferrari team.
Valtteri Bottas made it a Mercedes one-two ahead of Red Bull's Max Verstappen.
The Dutchman held on to third place, easily fending off Vettel's challenge despite damaging his front wing when he ran into the back of Lance Stroll's Williams at the restart after a mid-race virtual safety-car period.
Vettel dropped to fourth from second when Ferrari decided to pit him under the virtual safety car, the four-time champion saying he was running out of tyre life.
The problem cost Vettel what could be a crucial six points in his title fight with Hamilton.
- Spanish Grand Prix results
- The man who made F1 great - without meaning to
- Kubica 'could make a comeback now'
Problems hit Ferrari
Ferrari had also stopped early during the opening part of the race, Vettel making his first stop on lap 17 in an attempt to pre-empt an attack from Bottas.
The Finn was on course to jump Vettel in the pits anyway when he stopped after two further very fast laps, only for a problem with a rear wheel to delay him in the pits and leave Ferrari unpunished.
But Ferrari's problems returned, forcing the second stop that cost Vettel a place on the podium.
Vettel said: "We couldn't make the tyres last. For us, it was clear it was the right thing to do. If you look from the outside, it is easy but inside the car we were going through the tyres too quick so we were not able to stay out for another 23 laps. Even in the end, I was not able to attack to the end."
Vettel's team-mate Kimi Raikkonen retired from second place with an engine failure on lap 24, before he had made a pit stop.
Hamilton was supremely above Ferrari's concerns, as he converted his first pole position since the opening race in Australia into a first-lap lead.
After the early safety car for a multi-car crash caused by Haas driver Romain Grosjean in Turn Three, Hamilton bolted at the restart and had a 1.4-second lead at the end of the first racing lap.
Hamilton then pulled away at chunks of a second a lap and was immediately in control of a race he never looked likely to lose.
Ferrari's strategy let Mercedes off the hook for their slow stop to secure the first one-two of 2018 and Verstappen drove beautifully with a damaged car to take the final step on the podium.
Overtake of the race
Behind Vettel and Ricciardo, Haas driver Kevin Magnussen was in no-man's land, way behind the top five, but well clear of the rest, led by Carlos Sainz's Renault and McLaren's Fernando Alonso, who recovered well after being delayed by the first-lap incident.
Alonso pulled off the overtaking move of the race, passing Esteban Ocon's Force India around the outside of the fast Turn Three at the restart after the early safety car, then had to fight past Sauber's Charles Leclerc to take eighth, passing him with a wily move on the virtual safety car restart.
Grosjean 'doesn't look great'
The race started with high drama as Grosjean made an inexplicable error. He lost control of his car behind team-mate Magnussen and spun, but then bizarrely kept his foot buried in the throttle, causing the car to spin around back onto the track shrouded in clouds of tyre smoke.
As he spun back across the track, Nico Hulkenberg tried to take avoiding action in his Renault but had his rear wheel caught by Grosjean's car, and Toro Rosso's Pierre Gasly, unsighted, smashed into the side of the Haas.
All were unhurt, although Grosjean had to go to the medical centre for a precautionary check because the incident triggered the high impact alert in the car.
Grosjean was later handed a three-place grid penalty for the next race. Hulkenberg was withering in his assessment of the Frenchman's driving.
"He didn't look great in that scenario. Generally he likes spinning, but on the first lap is not a good time to do it with everyone there. He has to look at it and do some work on himself."
Driver of the day
What happens next?
Monaco in two weeks' time. Red Bull could be a major threat in qualifying for the first time this year and a close weekend is in prospect between the top three teams.
What they said
Hamilton said: "The car and myself, I felt that synergy that I hadn't been feeling all year. This is when we are going to start trying to apply the pressure. A one-two for the team. Strength in depth."
Valtteri Bottas, who finished second: "Of course I wanted to fight for the win today but as a team it was a good race. We had such a good car and the team was so reactive with strategy. As a team this weekend we have been perfect. For me, the wins will come."
Max Verstappen, who finished third, said: "The car was working really well, it is hard to pass, we just stayed close and got the luck with Kimi retiring.
"The tyres were handling really well and that gave us third place. I had to keep pushing as I had Sebastian behind me."