Nico Rosberg extended his stunning winning streak to five consecutive races in Bahrain, aided by Mercedes teammate Lewis Hamilton being hit by Williams’s Valtteri Bottas at the first corner.
The drama started even before the race, as Ferrari's Sebastian Vettel failed to start after his engine blew up on the warm-up lap.
Rosberg's progress was serene out front after Hamilton was collected by Bottas at the opening corner, causing him to half spin. After momentarily dropping to ninth, Hamilton's recovery was a feature of the race.
Although he struggled initially due to damaged aero on his sidepod and floor, the broken pieces fell off after a handful of laps.
Ferrari's Kimi Raikkonen had no answer for Rosberg's pace up front, although he did get within 4s after the final round of pitstops after Nico suffered a slow stop, but he was easily able to keep Hamilton at bay.
Red Bull's Daniel Ricciardo damaged his front wing at the first corner, but recovered to finish fourth, ahead of the Haas of Romain Grosjean – who went one place better than Melbourne in fifth.
Mercedes then geared Hamilton's strategy around a safety car that never happened.
Story of the race
Rosberg made a terrible practice start but produced a fine one when it mattered. With no Vettel on the grid, the Williams duo took full advantage by sprinting past a slow-starting Raikkonen.
Bottas hit Hamilton into a half spin at Turn 1, damaging the sidepod of his Mercedes and dropping him to ninth. "Something feels wrong at my rear," Hamilton reported, while Bottas said: "Everything feels OK from my side."
Rosberg led lap one from Felipe Massa, Bottas, Ricciardo (who damaged his front wing against the rear of Bottas at Turn 1), Kimi Raikkonen and Grosjean. Hamilton quickly recovered to seventh, and then passed Grosjean at Turn 1 for sixth.
Raikkonen passed Ricciardo for fourth around the outside at Turn 4, helped after the Australian had run wide at Turn 1, and Ricciardo soon dived for the pits.
Raikkonen then caught and passed Bottas at Turn 1 on lap seven for third, who lost a further place to a recovering Hamilton a lap later.
Bottas was the first to pit for mediums on lap nine, just before his drive-through penalty was confirmed for his first-corner collision with Hamilton.
Mercedes was able to pit both of its cars on lap 14, as Hamilton was so far behind Rosberg. On fresh rubber, Hamilton passed Massa at Turn 1 a lap later.
Ricciardo undercut Raikkonen in the first pitstops, and passed Massa on track. But it took less than half a lap for Raikkonen to repass Ricciardo on fresh rubber.
After his disastrous qualifying, Red Bull's Daniil Kvyat had surged to fourth on his first stint on new soft tyres, but had been easy meat for Raikkonen on lap 14.
Hamilton regains third
Hamilton moved ahead of Ricciardo for third on lap 17, while Grosjean jumped up to fifth past Massa soon after.
Grosjean showed great pace on supersofts in his second stint, passing Ricciardo for fourth on lap 24, encouraging them to run another set of the softest compound tyres.
Grosjean swept past Kvyat for fifth, a move replicated by Verstappen a few laps later. But a slow final pitstop hampered his chances and pushed him back to seventh, but he pulled a great move on Massa in the closing stages to finish fifth.
Ricciardo suffered a slow second pitstop, momentarily dropping him back behind Bottas and Massa, but he was able to regain his track position over them.
Toro Rosso's Max Verstappen went for a long stint on medium-compound tyres, which put him right in contention for a top finish.
He pulled a great move on Bottas just after half distance. A late stop for supersofts dropped him back to seventh, but he regained sixth from Massa with five laps to go.
With the top three settled, Ricciardo finished fourth ahead of Grosjean and Verstappen.
Kvyat made a late move to pass Bottas for eighth, and pulled a last-lap pass on Massa to snatch seventh.
On his Grand Prix debut, McLaren's Stoffel Vandoorne scored a point in tenth.
Plenty of incidents
Force India's Sergio Perez hit Carlos Sainz's Toro Rosso at Turn 1 on lap two, giving Sainz a right-rear puncture. Sainz rejoined, but later reported he "couldn't turn right"and retired just after half distance.
The Sauber duo almost collided on lap three, and continued their entertaining duel throughout the first half of the race. But Marcus Ericsson pulled well clear of Felipe Nasr to finish 12th, having become locked in battle with pitlane starter Kevin Magnussen's Renault in the closing laps.
Magnussen won that battle to finish 11th, while Renault's Jolyon Palmer retired at the end of the warm-up lap with hydraulic failure, while McLaren's Jenson Button went out on lap seven with an ERS failure.
Haas's Esteban Gutierrez went out on lap 10 with another hybrid-related issue.
|4||Daniel Ricciardo||Red Bull Racing||+1:02.494|
|5||Romain Grosjean||Haas F1 Team||+1:18.299|
|6||Max Verstappen||Toro Rosso||+1:20.928|
|7||Daniil Kvyat||Red Bull Racing||+1 lap|
|8||Felipe Massa||Williams||+1 lap|
|9||Valtteri Bottas||Williams||+1 lap|
|10||Stoffel Vandoorne||McLaren||+1 lap|
|11||Kevin Magnussen||Renault F1 Team||+1 lap|
|12||Marcus Ericsson||Sauber||+1 lap|
|13||Pascal Wehrlein||Manor Racing MRT||+1 lap|
|14||Felipe Nasr||Sauber||+1 lap|
|15||Nico Hulkenberg||Force India||+1 lap|
|16||Sergio Perez||Force India||+1 lap|
|17||Rio Haryanto||Manor Racing MRT||+1 lap|
|R||Carlos Sainz Jr.||Toro Rosso|
|R||Esteban Gutierrez||Haas F1 Team|
|R||Jolyon Palmer||Renault F1 Team|