Nico Rosberg provided some early excitement by passing his teammate and then spearing off. His recovery drive took him from dead last to the podium.
Daniel Ricciardo had a quiet afternoon in the middle of the pack, finishing seventh ahead of his teammate.
PRACTICE AND QUALIFYING
The practice sessions on the new track delivered a few surprises. The first was that the Sochi street track was easy on tyres.
The teams started talking about a one-stop race as early as Friday. The second was the pace of the McLarens, with Kevin Magnussen and Jenson Button running up in the top five.
The Williams were strong, as were the Mercedes who lead the sessions.
Qualifying saw Massa's Williams develop a fuel pressure problem that would keep him from the final fight for pole.
Lewis Hamilton took the fastest time, with Rosberg alongside, followed by Williams' Valtteri Bottas and Jenson Button. Magnussen was bumped back to eleventh for a gearbox penalty.
Sensationally, Daniil Kvyat took fifth in the Toro Rosso while the man he is replacing next year, Sebastian Vettel, could manage just eleventh and was out of Q3. Ricciardo was seventh, followed by the Ferraris and Vergne.
Yet another brilliant blue day greeted the drivers, who stood together before the race to honour Jules Bianchi still fighting for his life in a Japanese hospital.
Fifty-five thousand people attended this first Russian race and watched Lewis Hamilton form up on the grid with his car pointed across the track to launch in front of his teammate.
Hamtilon got a great start but Rosberg swept into the lead at turn one but then went way off into the run-off.
Mercedes radioed the German to get him to give the place back but he replied by saying he had to pit for a new set of tyres to replace the flat-spotted front. He was then told by his team that this new set would have to last the rest of the race.
Rosberg's pit stop put Bottas in second. Ricciardo and Vettel repeated their trick in Japan by following each other through the field, the Australian having got a poor start, perhaps wrong-footed by Kvyat who got a bad start too.
Williams' form was confirmed by a fast-moving Bottas while Fernando Alonso harassed Jenson Button for third place before the Briton responded.
Ricciardo was fighting for a place, too, staying with his teammate and telling his team that he was "losing a lot of time."
Sadly for Marussia, Max Chilton ran into trouble early, with a very early pit stop failing to cure a problem with the left front.
Ricciardo pitted on lap ten from seventh place, choosing to get out from behind Vettel and switch to mediums.
Massa, after his early stop, pushed his Williams forward, finding himself thirteenth on lap 13, his fuel pressure problems seemingly cured. The only driver doing so well was Rosberg, who reached eleventh on lap fifteen.
Out in front, Hamilton barely had to push his Mercedes to stay nearly five seconds ahead of Bottas.
The Finn got encouraging news from his pit, with the words, "Everything is looking great," coming through as he drifted away from Hamilton but staying well ahead of Button.
Kvyat's fall from the top ten saw him pit for tyres on lap 21, right back in twelfth place. Caterham's Kamui Kobayashi trundled into the pits after the team said it was unsafe for him to continue.
Kobayashi then gave a strange interview where he said the team wouldn't tell him what went wrong and that he can't guarantee he would be with the team for the rest of the season. The team later said it was due to overheating brakes.
Button pitted on lap 23 for medium compound tyres and headed out into ninth place, being the first of the frontrunners to pit. Rosberg, ominously, reported tyre degradation on the mediums whereas Hamilton was sailing along quite happily on softs.
Alonso had a disastrous stop on lap 26 with a sticking tyre on the left front, he finally got underway after seven seconds and then the backup front jack ran out in front of the departing Ferrari. Alonso stopped in time after a brief, heart-stopping moment.
Bottas came in on lap 27 and had a much better stop, coming out behind Vettel. Hamilton pitted from the lead at the end of that same lap for a trouble-free stop. Massa pitted again, switching to softs, on lap 28.
A brief moment of action occurred on lap 29 with Adrian Sutil spinning towards - but not into - the wall at turn two, helped along by Romain Grosjean who he was trying to overtake.
Grosjean understeered into the Sauber despite best efforts to avoid doing so. Grosjean copped a five second time penalty.
Sebastian Vettel was in trouble with his pitwall for failing to heed the "beeps", the advisory sounds the driver gets in his earpieces to help him with fuel usage. He pitted on lap 31 and came out behind Ricciardo in eighth.
Rosberg nabbed second from Valtteri Bottas on lap 30 with a huge diving pass from several car lengths back, the Finn almost jumping out of the way. The Williams team assured him they'd get him back as they believed his tyres would go off.
Daniil Kvyat's nightmare race continued as he had to turn his engine down to save fuel and then lost two places, first to Perez and then Massa. He then flat-spotted his tyres while attacking Nico Hulkenberg.
Despite his tyres covering thirty-four laps, Rosberg set the fastest lap of the race so far, the German now 19 seconds behind race leader Hamilton.
He was asked on lap 40 if he could get to the end on the tyres, to which he replied, "It's going to be difficult."
As if to tell Rosberg he won't make it, Gutierrez had his first pit-stop on lap 40.
Bottas maintained his lead over Button of around five seconds, his second place aspirations beginning to look shaky as Rosberg soldiered on. Ricciardo chased down Alonso, hoping to take sixth from the Ferrari driver who was unable to make an impression on Magnussen ahead.
Sergio Perez, running in tenth and with Felipe Massa on his tail, had his engineer pleading with him to use less fuel.
Clearly Perez figured he had little to lose - if he backed off, he would definitely lose the point, if he didn't, he might just make it. He did, denying Massa that final point.
Bottas made valiant efforts in the closing stages to chase down Rosberg, but the German was able stay well ahead on old tyres such is the Mercedes advantage.
Hamilton took his thirty first grand prix victory and his fourth in a row. Valtteri Bottas took yet another podium for season 2014 in third place, finishing the race with the fastest lap. Rosberg rued his first lap mistake and thanked his team for an amazing car.
"It was a good day and an amazing weekend. I've thoroughly enjoyed the weekend here in Russia, it's a great place," Hamilton said.
"It's been one of my favourite venues so far this year, so it's very cool to have won the first race here.”
Ricciardo came home seventh, ahead of Vettel.
"The first few laps were pretty hectic and we lost a few places at the start. We will have to have a look at that, it's nearly the end of the season now, but we haven't had many good starts so that's a bit frustrating," Ricciardo said.
"Starting the race the tyre was already blistered, it had quite a bit from qualifying, so it wasn't looking too healthy and the first stint made it worse; I could see it starting to come apart, so we had to pit quite early. Then on the prime the tyre lasted well and we had good pace and could match Alonso, but couldn't get past. Congrats to Mercedes - it's been a dominant season by them, so hats off to them.”
As a result of Hamilton's victory, Mercedes clinched the world title for constructors with three races to go.
Formula 1 returns in three weeks for the US Grand Prix.
- Lewis Hamilton - Mercedes - 1h31m50.744s
- Nico Rosberg - Mercedes +13.657s
- Valtteri Bottas - Williams/Mercedes +17.425s
- Jenson Button - McLaren/Mercedes +30.234s
- Kevin Magnussen - McLaren/Mercedes +53.616s
- Fernando Alonso - Ferrari +1m00.016s
- Daniel Ricciardo - Red Bull/Renault +1m01.812s
- Sebastian Vettel - Red Bull/Renault +1m06.185s
- Kimi Raikkonen - Ferrari +1m18.877s
- Sergio Perez - Force India/Mercedes +1m20.067s
- Felipe Massa - Williams/Mercedes +1m20.877s
- Nico Hulkenberg - Force India/Mercedes +1m21.309s
- Jean-Eric Vergne - Toro Rosso/Renault +1m37.295s
- Daniil Kvyat - Toro Rosso/Renault +1 Lap
- Esteban Gutierrez - Sauber/Ferrari +1 Lap
- Adrian Sutil - Sauber/Ferrari +1 Lap
- Romain Grosjean - Lotus/Renault +1 Lap
- Pastor Maldonado - Lotus/Renault +1 Lap
- Marcus Ericsson - Caterham/Renault +2 Laps