Hamilton takes Russian Grand Prix pole after 'horrible' qualifying
The Mercedes six-time champion clocked a best lap in one minute and 31.304 seconds to outpace Max Verstappen of Red Bull by half a second.
His Mercedes team-mate Valtteri Bottas was third-quickest with Sergio Perez of Racing Point sharing the second row.
Hamilton is bidding to claim his fifth win at the Sochi track where Mercedes have dominated winning all six races since 2014.
Saturday's second session was interrupted for 10 minutes after Sebastian Vettel crashed in his Ferrari. He was unhurt.
Replays showed that the German driver, in his final season with Ferrari, clipped a kerb at Turn Four and lost control as he smacked into the barriers.
The red flags came out with Hamilton in a perilous 15th place with just over two minutes remaining.
"I wanted to stay out and do a banker but they said come in and get new tyres and then the red flag came out. It was a risk, we got through but I am starting on softs which is not good.
"Undoubtedly I am likely to get dragged past tomorrow, it will make it hard to win the race."
Once Q2 eventually resumed Hamilton managed to put in the fourth quickest time to get through to the top 10 shoot-out but missing from it were both Ferraris with Vettel's teammate Charles Leclerc knocked out in 11th place.
In fifth place on Sunday's Sochi grid is Daniel Ricciardo for Renault, Carlos Sainz was sixth for McLaren, ahead of Esteban Ocon in the second Renault, Lando Norris in the second McLaren, Pierre Gasly of Alpha Tauri and Alex Albon in the second Red Bull.
Sunday's race is due to be watched by the biggest sporting crowd in the Covid-19 era with 30,000 fans allowed to attend.