Lewis Hamilton and Mercedes reasserted their authority over Formula 1 with a commanding Chinese Grand Prix victory.
Nico Rosberg had to settle for second place, ahead of the Ferraris of Sebastian Vettel and Kimi Raikkonen, in a race that was close at times without ever truly coming to life.
Hamilton had made his intentions clear by angling his car very aggressively towards Rosberg's on the grid.
He duly held his lead off the line, with Rosberg and Vettel stringing out behind the champion through the first stint.
The situation became more tense in the middle stint of the two-stop race, as both Rosberg and Vettel closed on Hamilton.
A frustrated Rosberg radioed Mercedes asking if Hamilton could speed up, as his tyres were wearing too much whenever he got closer than two seconds away from his team-mate's rear wing.
When Ferrari brought Vettel in for his second stop ahead of the two Mercedes, Rosberg was pitted a lap later in an effort to prevent his countryman getting an undercut on his new tyres.
But rather than his rivals' earlier stops putting Hamilton at a disadvantage, he was able to raise his pace considerably on his final laps on soft tyres.
Hamilton ran two laps longer than Rosberg and rejoined with a 6s cushion rather than the 2s advantage he had held prior to the stops.
Rosberg reduced Hamilton's lead slightly before settling for second.
A safety car appearance with two laps to go - caused by Max Verstappen's Toro Rosso parking on the pit straight in a cloud of smoke - made things even more comfortable for Hamilton, as the race finished under yellow.
Vettel was not a match for the Mercedes once all were onto medium tyres and fell away in third.
The Malaysian GP winner then came under late pressure from team-mate Kimi Raikkonen.
The Finn quickly cleared both Williams on the opening lap to make up for his qualifying frustration, and though he could not keep pace with the top three at first, he ran long in his middle stint and made up ground.
Raikkonen was still 1.4s behind Vettel when the late safety car came out and had to be content with fourth.
Williams ran a lonely and distant fifth and sixth with Felipe Massa and Valtteri Bottas, a minute behind the leaders prior to the field being bunched up.
Lotus scored its first points of the year with Romain Grosjean in seventh, but it was a wild race for his team-mate Pastor Maldonado.
The Venezuelan got ahead of Grosjean in the first pitstop sequence, before going down the pitlane entry escape road at his second stop.
A spin while trying to recover left him even further behind, and he then became embroiled in a spectacular battle with the McLarens of Jenson Button and Fernando Alonso.
After several fraught laps, this came to a head when Button hit the back of the Lotus at Turn 1, ending Maldonado's race and prompting a stewards' investigation.
Despite that, McLaren still got its first double finish of 2015 with Alonso and Button's battered cars 12th and 13th.
Until his late engine failure, Verstappen was on course for eighth, having sliced through the field with some very accomplished overtaking.
But his problem completed a terrible day for Renault and the Red Bull-owned teams.
Daniel Ricciardo had tumbled to 17th with a terrible start and made heavy weather of coming back through the field to ninth between the Saubers of Felipe Nasr and Marcus Ericsson, which scored again.
Daniil Kvyat was also out early with a suspected engine failure, while Carlos Sainz Jr spun at Turn 1 in the opening laps and later lost time with a gearbox problem before finishing between the McLarens and Manors in 14th.
Force India spent a while in the points as a unique three-stop strategy for Sergio Perez shook out, but in the end 11th was his limit.
A gearbox failure ended team-mate Nico Hulkenberg's race.
RESULTS - 56 LAPS:
|9||Daniel Ricciardo||Red Bull/Renault||32.117s|
|10||Marcus Ericsson||Sauber/Ferrari||1 Lap|
|11||Sergio Perez||Force India/Mercedes||1 Lap|
|12||Fernando Alonso||McLaren/Honda||1 Lap|
|13||Jenson Button||McLaren/Honda||1 Lap|
|14||Carlos Sainz||Toro Rosso/Renault||1 Lap|
|15||Will Stevens||Marussia/Ferrari||2 Laps|
|16||Roberto Merhi||Marussia/Ferrari||2 Laps|
|17||Max Verstappen||Toro Rosso/Renault||4 Laps|
|-||Daniil Kvyat||Red Bull/Renault||Retirement|
|-||Nico Hulkenberg||Force India/Mercedes||Retirement|