The move backed up pre-race paddock speculation that Ferrari would attempt to shuffle their leading driver ahead of pole-sitter Raikkonen.
Hamilton finished seventh after a difficult race from 13th on the grid.
A largely dull race was enlivened by a late safety car after a collision involving McLaren’s Jenson Button, on his one-off return to F1 in place of Fernando Alonso.
It closed up the field and led to a series of crashes and collisions among the backmarkers.
Team orders return at Ferrari
Raikkonen took his first pole position for nine years on Saturday after Vettel made mistakes on both his quick laps in the top 10 qualifying shoot-out.
The Finn converted his advantage into a lead at the first corner and the two Ferraris began to edge away from Valtteri Bottas’ Mercedes and the two Red Bulls of Max Verstappen and Daniel Ricciardo.
The race was always going to feature only one pit stop and there was widespread speculation within F1 before the race as to whether Ferrari would find a way to engineer the strategy to allow Vettel to win.
The way things panned out, it looked as if that was what happened.
Raikkonen made his pit stop on lap 34, at a time when there was no obvious requirement to do so, and he came out behind slower cars, which he had to lap.
Vettel used the opportunity to set a series of flying laps and by the time the German pitted five laps later, he had more than enough of an advantage to rejoin with a two-second lead.
He continued to pull quickly away from Raikkonen, building a 10-second lead within eight laps and cruised to his third win of the year, despite the late safety car period.
Hamilton’s low-key comeback
Mercedes knew they would always struggle to make up too much ground with Hamilton after starting 13th because of a messy qualifying session, including a series of driving errors and problems with tyres.
They decided to run him long and hope to gain from his speed once he got some clear air, as cars pulled in to make their pit stops.
Hamilton ran until lap 46 before stopping, by which time he was sixth. He lost only one place, to Toro Rosso’s Carlos Sainz and ran seventh to the end, closing on the Spaniard but unable to pass him.
“The battle’s not over, boys,” Hamilton said over the radio in the closing laps. “We’ll take these points.”
Button’s not-so-low-key comeback
Button’s one-off return to Formula 1 as a replacement for Fernando Alonso, who was in America to race in the Indianapolis 500, ended in a crash with Sauber’s Pascal Wehrlein.
The 2009 world champion started from the pits after McLaren made a decision to change his car set-up after qualifying because he was anyway starting from the back after engine penalties.
The team pitted him on the first lap, the idea being to get the mandatory pit stop out of the way and hope to gain places.
But Sauber played the same strategy with Wehrlein and the German rejoined right in front of Button.
Sauber were found guilty of an unsafe release because Button had to lift in the pit lane to avoid contact, but the five-second penalty Wehrlein received did not help Button, who spent the rest of the race stuck behind the Sauber.
Finally, on lap 60, Button saw an opportunity to pass as they were lapped by Raikkonen and dived down the inside of Wehrlein’s car at the Portier corner.
Button was halfway alongside, Wehrlein turned in and the cars collided, the Sauber rising up on to its side and coming to rest on its left-hand wheel rims with Wehrlein unhurt, but stuck in the cockpit against the barrier.
The incident brought out the safety car and Red Bull switched Verstappen to fresh ultra-soft tyres to try to give him a chance to pass Bottas, but he was unable to do so.
Frantic final laps
The safety car dramatically enlivened the last few laps.
Red Bull switched Verstappen on to fresh ultra-soft tyres to give him a chance to pass Bottas for fourth, after losing the position with an earlier strategy play.
Ricciardo had vaulted from fifth to third as a result of Red Bull splitting their strategies, with Verstappen failing in his attempt to pass Bottas by stopping first, and the Australian succeeding in doing so by running long and pitting later.
At the restart, Ricciardo hit the wall at Sainte Devote, the first corner, under pressure from Bottas but was able to continue without losing position.
The three cars circulated together for the rest of the race, Bottas in a Red Bull sandwich, but all three were stuck and finished with Ricciardo taking the final podium place ahead of Bottas and Verstappen.
Earlier, Verstappen had not been happy about dropping behind his team-mate, using an expletive over the radio to describe the strategy plan as “a disaster”.
Elsewhere, Sauber’s Marcus Ericsson crashed out under the safety car, McLaren’s Stoffel Vandoorne slid into the barriers when passed by Force India’s Sergio Perez at the restart, and Perez collided with Toro Rosso’s Daniil Kvyat at Rascasse, putting the Russian out of the race.
What they said
Vettel: “Unbelievable. It was a very tense race. I knew that was the chance to win and I was able to use that window and come out ahead. After that I was able to control the gap behind.”
Rosberg: “Was [overtaking Raikkonen at the pit stops] planned?”
Vettel: “No, not really. The plan was to try and pull away which we did. Valtteri had good pace and then the window opened, as soon as Valtteri pitted Kimi responded. I still had some pace and I was able to keep going.”
Raikkonen: “Nothing to say really. Obviously it’s still second place but it doesn’t feel awful good. But it is how it goes sometimes: we go to the next race and try to do better. It is one of those races when you hope to get more.”