Max Verstappen showed pace to trouble the Mercedes drivers but did not complete his final qualifying simulation run for Red Bull.
Daniel Ricciardo finished 10th after setting the second and third fastest times in the two Friday practice sessions as a bizarre mirror issue appeared to cost him time on his final lap.
At the start of the one hour session, Lando Norris established the early benchmark at 1m36.423s on the medium tyres as he toured around the Sochi Autodrom solo in the opening minutes before most of the pack then emerged to set the initial qualifying simulation runs on the soft tyres.
Bottas was the first Mercedes driver to attempt a lap, but he had to abandon his initial effort after turning in with his left-side wheels on the kerbs at Turn 7, missing the apex and going deep and then off the track beyond the fast right-hander.
But Bottas went for another lap at the end of his abandoned tour and took the top spot with a 1m35.183s – still setting what was then the fastest third sector despite his tyres having done an extra lap.
Hamilton also had an off-track moment on his first run – after both Mercedes drivers had had trouble staying on the low-grip asphalt on Friday – as he ran wide and got caught on the large orange kerb beyond Turn 7, with his left-front tyre appearing to hang in the air as he rubbed along the raised track limits deterrent.
Pierre Gasly briefly took the top spot with a 1m34.930s on his first soft tyre run, but a few moments later Bottas blasted back to P1 with 1m34.289s on his next set of softs, with Hamilton then using his own second set to go second at that stage, 0.2s slower than his team-mate.
Verstappen did not set a timed lap until halfway through the session, but when he did he split the Mercedes cars, just 0.017s adrift of the top spot.
After a brief lull in action, Bottas took his latest set of softs and improved the P1 benchmark to 1m34.055s.
But Hamilton seized control with his full run – despite appearing to go slightly deep at Turn 2 at the end of the main straight – as he set rapid pace in the second and third sectors to take P1 with a 1m33.29s.
Sainz jumped to third on his final qualifying simulation run, but Verstappen was poised to improve as he set the fastest time of the session in the opening sector with eight minutes remaining.
But the Red Bull lost time early in the second sector and he abandoned his lap, ending up shuffled down to sixth by Ocon and Racing Point’s Sergio Perez.
Sebastian Vettel put his Ferrari seventh despite running very wide out of the final corner late on, asking his team to check his car for damage, with Lance Stroll and Daniil Kvyat taking eighth and ninth.
Ricciardo had gone fractionally quicker than Ocon in the first sector, but as his final lap wore on he began reaching out of his cockpit to adjust his right-side mirror, which was twisting on its carbonfibre arm as he raced around the track.
The Australian driver lost time as the lap wore on, with the mirror continuing to bounce around, and although he jumped up from P16 he finished 10th in the final standings.
Several drivers had additional off-track moments – including Gasly (who finished 11th) and Romain Grosjean (P14) spinning at the slower left of Turn 15 after their cars were unsettled on a bump, which also caught out Alex Albon although he stayed pointing in the right direction.
Albon wound up 19th in the final classification after cutting across the kerbs at Turn 2 on his final flying lap, which is a track limits offence that cost him a spot in the top 10.
Norris brought up the rear of the field after abandoning his final flying run.
Russian GP - FP3 results:
|1|| Lewis Hamilton ||Mercedes||16||1'33.279|
|2|| Valtteri Bottas ||Mercedes||19||1'34.055||0.776|
|3|| Carlos Sainz Jr. ||McLaren||17||1'34.096||0.817|
|4|| Esteban Ocon ||Renault||13||1'34.239||0.960|
|5|| Sergio Perez ||Racing Point||14||1'34.252||0.973|
|6|| Max Verstappen ||Red Bull||11||1'34.306||1.027|
|7|| Sebastian Vettel ||Ferrari||14||1'34.594||1.315|
|8|| Lance Stroll ||Racing Point||13||1'34.732||1.453|
|9|| Daniil Kvyat ||AlphaTauri||14||1'34.768||1.489|
|10|| Daniel Ricciardo ||Renault||12||1'34.787||1.508|
|11|| Pierre Gasly ||AlphaTauri||12||1'34.792||1.513|
|12|| Charles Leclerc ||Ferrari||14||1'34.806||1.527|
|13|| George Russell ||Williams||16||1'34.979||1.700|
|14|| Romain Grosjean ||Haas||14||1'35.257||1.978|
|15|| Nicholas Latifi ||Williams||14||1'35.292||2.013|
|16|| Kevin Magnussen ||Haas||14||1'35.451||2.172|
|17|| Antonio Giovinazzi ||Alfa Romeo||15||1'35.590||2.311|
|18|| Kimi Raikkonen ||Alfa Romeo||15||1'35.599||2.320|
|19|| Alex Albon ||Red Bull||14||1'35.603||2.324|
|20|| Lando Norris ||McLaren||17||1'35.981||2.702|
|View full results|