Although the times at the top of the table changed little, the session featured several spins and crashes – with Williams driver Nicholas Latifi's accident bringing out the red flags – as the drivers got up to speed in Sochi.
Unusually, the Mercedes pair claimed the top spots during the early installation running as they opted to head out at the start of the session instead of waiting in their garages, with Hamilton setting the initial pace at 1m37.313s before Bottas arrived and improved the top spot by 0.403s.
After a lull in action of over 10 minutes, the pack gradually headed back out to complete more laps on the medium and hard rubber – with Sergio Perez, Daniil Kvyat and Daniel Ricciardo all enjoying brief spells in first place.
Just before the opening half hour of the 90-minute session had been completed, Verstappen went quickest with 1m36.751s on the mediums, as the Mercedes pair took to the track on the softs.
Bottas used the red walled rubber to set a new quickest time at 1m34.923s, which remained as the fastest time for the rest of the session as the first of two major disruptions occurred shortly afterwards.
Hamilton did not get to set his soft tyre lap as Carlos Sainz lost the rear of his McLaren after putting his left-side wheels onto the outside kerbs approaching the Turn 7 left-hander and he spun off, hitting the barriers backwards and breaking his rear wing.
Sainz toured his damaged car back to the pits, with Kvyat then spinning his AlphaTauri and the slow and tight left of Turn 15 early in the third sector, the virtual safety car was the activated.
Once the cars were allowed back to full speed, the Mercedes pair switched back to the harder rubber and both had off-track moments.
Hamilton locked up briefly but dramatically going into the race overtaking spot at Turn 2 at the session's halfway point, quickly cutting across the runoff area and then declaring his tyres were "done", while a few minutes later Bottas locked up and went deep at the Turn 13 right – where Sainz had his enormous accident at the same event in 2015.
At the 53-minute mark, Latifi lost the rear of his Williams going through Turn 10, the 90-degree right that runs onto the track's long acceleration zone leading to the big stop at Turn 13, and he spun off backwards at high-speed.
Unlike Sainz's incident, Latifi's car was buried in the barriers and the session had to be stopped for nine-minutes while it was recovered.
The teams took different approaches to the session's final third, with Red Bull sending Verstappen out on the softs to claim second with 25 minutes to go before he was later deposed by Ricciardo five minutes later, while Mercedes stuck to data gathering on the harder rubber.
Perez ended up fourth ahead of his Racing Point teammate Lance Stroll and Renault's Esteban Ocon.
Kvyat finished seventh, with Alex Albon, Sebastian Vettel and Pierre Gasly rounded out the top 10.
Charles Leclerc, who cut the Turn 2 runoff shortly after the Sainz crash when he turned in ahead of Romain Grosjean, with the Ferrari driver saying his Haas rival "thought we were in a race", finished 11th in the second Ferrari.
Sainz finished 12th in the standings ahead of his teammate Lando Norris, but only completed eight laps as a result of his incident, after which he did not return to the track.
Russell and Grosjean both had offs at Turn 15, with Russell locking up in a similarly dramatic way to Bottas and going deep, while the Haas driver spun going through the right-hander shortly after Verstappen had set his fastest time of the session.
They ended up 17th and 18th ahead of Hamilton and Latifi.
|1|| Valtteri Bottas ||Mercedes||13||1'34.923|
|2|| Daniel Ricciardo ||Renault||22||1'35.430||0.507|
|3|| Max Verstappen ||Red Bull||22||1'35.577||0.654|
|4|| Sergio Perez ||Racing Point||23||1'35.796||0.873|
|5|| Lance Stroll ||Racing Point||21||1'35.965||1.042|
|6|| Esteban Ocon ||Renault||23||1'36.061||1.138|
|7|| Daniil Kvyat ||AlphaTauri||22||1'36.230||1.307|
|8|| Alex Albon ||Red Bull||24||1'36.254||1.331|
|9|| Sebastian Vettel ||Ferrari||23||1'36.323||1.400|
|10|| Pierre Gasly ||AlphaTauri||25||1'36.706||1.783|
|11|| Charles Leclerc ||Ferrari||23||1'36.896||1.973|
|12|| Carlos Sainz Jr. ||McLaren||8||1'36.970||2.047|
|13|| Lando Norris ||McLaren||28||1'37.110||2.187|
|14|| Antonio Giovinazzi ||Alfa Romeo||17||1'37.201||2.278|
|15|| Kimi Raikkonen ||Alfa Romeo||23||1'37.230||2.307|
|16|| Kevin Magnussen ||Haas||22||1'37.430||2.507|
|17|| George Russell ||Williams||24||1'37.595||2.672|
|18|| Romain Grosjean ||Haas||24||1'37.649||2.726|
|19|| Lewis Hamilton ||Mercedes||18||1'37.716||2.793|
|20|| Nicholas Latifi ||Williams||11||1'37.784||2.861|
|View full results|