Sebastian Vettel clinched victory in the Monaco Grand Prix as Formula 1 title rival Lewis Hamilton finished down in seventh.
Pole-sitter Kimi Raikkonen led the opening part of the race, but Vettel stayed out five laps longer before his pitstop, and rejoined ahead of his team-mate.
Raikkonen could not respond with Vettel stretching his lead before the safety car was called into action when Jenson Button collided with Pascal Wehrlein at Portier, pitching the Sauber onto its side against the barrier.
But once the race got back under way, Vettel was able to build a gap and crossed the line 3.1 seconds clear of his team-mate to secure Ferrari's first win in Monaco since 2001.
Daniel Ricciardo, who survived hitting the wall at Sainte Devote after the race restart, also ran a long first stint, enabling him to jump the Mercedes of Valtteri Bottas and the other Red Bull of Max Verstappen to take third.
Hamilton, who started 14th, was the last driver to pit, switching from ultra-softs to super-softs and rejoining seventh.
The three-time world champion pressured Carlos Sainz Jr in the closing stages, but could not find a way past, which means he leaves Monaco 25 points adrift of Vettel in the drivers' standings.
Raikkonen made a brilliant getaway to lead away from pole, with Vettel fending off a half-hearted attack from Bottas to retain second.
The Finn built a gap of around 2.1s, but Vettel began closing that down and was within a second before Raikkonen was called into the pits.
Vettel pumped in a series of quick laps ahead of his stop and rejoined around a second clear of his team-mate, with Raikkonen seemingly giving up on the win from there.
Verstappen was furious when he found out Ricciardo had jumped him, labelling the situation a disaster, and though he pressured Bottas for much of the second stint, he couldn't find a way past.
With 18 laps to go, Button, who was filling in at McLaren while Fernando Alonso competes at the Indianapolis 500, tried an ambitious pass on Wehrlein into Portier.
The two, who had run nose-to-tail for the entire race, made contact, with Wehlein's Sauber pitched onto its side against the barrier, while Button pulled over at the exit of the tunnel with the front-left corner of the car heavily-damaged.
Wehrlein climbed out of the car, once it was righted onto its wheels, and was able to walk away unaided but went to the medical centre for precautionary checks.
It was a frustrating day for Sauber, with Marcus Ericsson carrying too much speed into Sainte Devote and hitting the wall when trying to pass the safety car to unlap himself.
Romain Grosjean finished eighth in the leading Haas, ahead of Felipe Massa with Kevin Magnussen completing the top 10.
Stoffel Vandoorne was set to finish 10th and score McLaren's first point of the season but he slid off at Sainte Devote when Sergio Perez attacked down the inside.
Perez, who had his race compromised when he was forced to pit early with a damaged front wing, then tried a bold pass on Daniil Kvyat at Rascasse for ninth.
The pair made contact, with Kvyat retiring and Perez pitting for another front wing, bringing to an end his 15-race point-scoring streak.
Jolyon Palmer was the sole finishing Renault in 11th with his team-mate Nico Hulkenberg retiring with a gearbox problem when running 10th.
|3||Daniel Ricciardo||Red Bull/Renault||78||3.745s|
|5||Max Verstappen||Red Bull/Renault||78||6.199s|
|6||Carlos Sainz Jr.||Toro Rosso/Renault||78||12.038s|
|12||Esteban Ocon||Force India/Mercedes||78||23.725s|
|13||Sergio Perez||Force India/Mercedes||78||49.089s|
|14||Daniil Kvyat||Toro Rosso/Renault||71||Collision|
|-||Stoffel Vandoorne||McLaren/Honda||66||Spun off|
|-||Marcus Ericsson||Sauber/Ferrari||63||Spun off|
|8||Carlos Sainz Jr.||25|