Nico Rosberg dominated the Russian Grand Prix to take his fourth win in a row this season as Lewis Hamilton fought back to finish second.
Hamilton started 10th after an engine failure in qualifying but after repairs he drove a superlative race to limit the damage to his title hopes.
But Rosberg's victory extended his championship lead to 43 points.
Ferrari's Sebastian Vettel crashed out on the first lap after being hit twice by Red Bull's Daniil Kvyat.
Impressive Hamilton pegged back by more bad luck
Hamilton closed dramatically on Rosberg in the mid-part of the race but had to back off to protect his engine.
Hamilton had dispatched Ferrari's Kimi Raikkonen with a dive down the inside into Turn Five on lap seven and, after passing Williams driver Valtteri Bottas to take second on lap 19, he began to claw back Rosberg's advantage.
First it was by small margins, but in six laps from lap 30 he reduced it from 12.1 seconds to 7.5.
As Hamilton began to close, Mercedes said the speed differential was down to Rosberg being in traffic. But he continued to close over a number of laps once the German was in clear air until being told that the engine had a water-pressure issue.
Hamilton immediately backed off, the problem stabilising after a handful of laps.
The Briton cruised to finish in second, watched by the late-arriving Russian President Vladimir Putin, comfortably able to hold off Ferrari's Kimi Raikkonen.
The Finn took the final podium position, passing Bottas after stopping for fresh tyres four laps later.
Vettel furious as Kvyat drives into him. Twice
Raikkonen's team-mate Vettel was taken out by two separate clashes with Kvyat on the first lap.
The two had argued publicly after the previous race in China, when Vettel felt Kvyat's dive down the inside at Turn One had been too aggressive and had precipitated a collision between the two Ferraris.
Most observers felt Vettel's criticisms in Shanghai were unfair, but there was no doubt Kvyat was in the wrong in Sochi.
He rammed Vettel's car up the rear at the second corner, and then again at the third, forcing Vettel into a spin into the barriers. Kvyat was given a 10-second stop-go penalty for his errors.
Vettel spat expletives over the team radio before getting out of his car and riding a scooter back to the pits to make his feelings clear to Red Bull team boss Christian Horner.
But when talking to reporters, Vettel's phlegmatic mood was in contrast to his anger after China. "These things happen obviously but it's harsh. The race is very long; you can make progress on the first lap but you can also end your race.
"It was not my fault - there was nothing I would do differently.
"I don't dislike [Kvyat]. I think he did a mistake two weeks ago and I think he did a mistake today."
Good news for McLaren Honda
Bottas took fourth, ahead of team-mate Felipe Massa and the McLaren of Fernando Alonso, scoring the team's best result of the year by far in sixth.
Alonso's result was based on a brilliant first lap, in which he rose from 14th on the grid to seventh.
Team-mate Jenson Button went the opposite way on the first lap, dropping to 15th after being held up by Vettel's crash, and could only take 10th, taking the final point by pressuring Toro Rosso's Carlos Sainz into a mistake with four laps to go.
Behind Alonso, Kevin Magnussen was a highly impressive seventh for struggling Renault, ahead of Haas' Romain Grosjean and Force India's Sergio Perez, who recovered well from a first-lap puncture.
Bulletproof Mercedes engine looking fragile
Hamilton, who was up to fifth on the first lap after threading his way through chaos at the first corner, said: "There wasn't a doubt in my mind I could win it. I had the pace, but then I had the problem with the engine again and I had to back off."
"We had a rough seas. No simple plain sailing," Mercedes team boss Toto Wolff said. "Lewis had a worry, we had a water leak, and we just needed to bring the car home.
"And we also had a problem on the engine on Nico's car as well, where it was giving strange signals from the power-unit."
That will be a concern for Mercedes, following the consecutive engine problems Hamilton had during qualifying at the last two races.