Poleman Raikkonen held his advantage at the start as the pack filtered through Ste Devote for the first time without incident, with Vettel keeping second ahead of Valtteri Bottas's Mercedes.
That was how the order remained out front until the pitstops, which began when Red Bull's Max Verstappen pitted from fourth place on lap 32 – followed by Bottas one lap later.
Raikkonen was brought in from the lead on lap 34, rejoining well ahead of Bottas and Verstappen, but Vettel stayed out on track for another five laps, setting the fastest lap in the process.
The four-time champion rejoined after his stop ahead of his Ferrari teammate, and had established a lead of more than 10 seconds before the safety car was called on lap 61 when Jenson Button and Pascal Wehrlein collided at Portier.
Button, standing in for Fernando Alonso at McLaren, had tried to force his way up the inside of Wehrlein, whose car was pitched onto its side when the pair made contact.
Wehrlein emerged unhurt from the incident, which also left Button with terminal damage.
When the race resumed on lap 67, Vettel duly pulled away from Raikkonen to secure his third victory of the season by a margin of 3.145s and extend his points lead.
Daniel Ricciardo took the final podium spot, having jumped both Bottas and Verstappen in the pits with a stop six laps later than the latter.
The Australian brushed the outside barrier exiting Ste Devote while being challenged by Bottas at the restart, but retained third place and kept Bottas and Verstappen at bay in the remaining laps.
From 13th on the grid, Lewis Hamilton was able to salvage a seventh place finish behind the Toro Rosso of Carlos Sainz.
Hamilton made up a place on Stoffel Vandoorne at the start, and gained further ground when Nico Hulkenberg stopped on track with a gearbox failure and Sergio Perez had to pit early to replace a damaged front wing.
That put the Briton up to 10th before the start of the pitstop phase, and staying out until lap 46 allowed him to jump Romain Grosjean and Daniil Kvyat, as well as Kevin Magnussen – who had to return to the pits for a second time after getting a puncture.
Hamilton now lies 25 points adrift of Vettel in the title battle, with Bottas a further 29 back in third.
Grosjean held on for eighth, but Kvyat lost ninth when he was hit by Perez at Rascasse, an incident that forced the Mexican to pit – promoting Felipe Massa to ninth and Magnussen to 10th.
Vandoorne had been running 10th at the restart, but lost the chance of securing McLaren's first point of the year when he ran wide at Ste Devote while being passed by Perez and went into the barriers.
Renault's Jolyon Palmer finished just outside the points in 11th, ahead of Esteban Ocon - delayed by a puncture early on - and Perez.
Lance Stroll retired in the closing stages with apparent brake problems, while Marcus Ericsson also failed to finish after running into the Ste Devote barriers during the safety car period.
2528 May 2017Circuit de Monaco, Monte Carlo
|3||3||Daniel Ricciardo||RED BULL RACING TAG HEUER||78||+3.745s||15|
|5||33||Max Verstappen||RED BULL RACING TAG HEUER||78||+6.199s||10|
|6||55||Carlos Sainz||TORO ROSSO||78||+12.038s||8|
|8||8||Romain Grosjean||HAAS FERRARI||78||+18.150s||4|
|9||19||Felipe Massa||WILLIAMS MERCEDES||78||+19.445s||2|
|10||20||Kevin Magnussen||HAAS FERRARI||78||+21.443s||1|
|12||31||Esteban Ocon||FORCE INDIA MERCEDES||78||+23.725s||0|
|13||11||Sergio Perez||FORCE INDIA MERCEDES||78||+49.089s||0|
|14||26||Daniil Kvyat||TORO ROSSO||71||DNF||0|
|15||18||Lance Stroll||WILLIAMS MERCEDES||71||DNF||0|
|NC||2||Stoffel Vandoorne||MCLAREN HONDA||66||DNF||0|
|NC||9||Marcus Ericsson||SAUBER FERRARI||63||DNF||0|
|NC||22||Jenson Button||MCLAREN HONDA||57||DNF||0|
|NC||94||Pascal Wehrlein||SAUBER FERRARI||57||DNF||0|
Note - Wehrlein received a 5-second time penalty for an unsafe release. Perez received a 10-second time penalty for causing a collision.
|5||Daniel Ricciardo||AUS||RED BULL RACING TAG HEUER||52|
|6||Max Verstappen||NED||RED BULL RACING TAG HEUER||45|
|7||Sergio Perez||MEX||FORCE INDIA MERCEDES||34|
|8||Carlos Sainz||ESP||TORO ROSSO||25|
|9||Felipe Massa||BRA||WILLIAMS MERCEDES||20|
|10||Esteban Ocon||FRA||FORCE INDIA MERCEDES||19|
|12||Romain Grosjean||FRA||HAAS FERRARI||9|
|13||Kevin Magnussen||DEN||HAAS FERRARI||5|
|14||Pascal Wehrlein||GER||SAUBER FERRARI||4|
|15||Daniil Kvyat||RUS||TORO ROSSO||4|
|17||Marcus Ericsson||SWE||SAUBER FERRARI||0|
|18||Lance Stroll||CAN||WILLIAMS MERCEDES||0|
|19||Fernando Alonso||ESP||MCLAREN HONDA||0|
|20||Antonio Giovinazzi||ITA||SAUBER FERRARI||0|
|21||Stoffel Vandoorne||BEL||MCLAREN HONDA||0|
|3||RED BULL RACING TAG HEUER||97|
|4||FORCE INDIA MERCEDES||53|