The 21-year-old British driver took advantage of the wet-dry conditions at Sochi’s rain-hit Olympic Park to put his McLaren at the front of the grid ahead of Ferrari driver Carlos Sainz.
Hamilton appeared on course to cruise to his 101st pole but a late switch to dry rubber dramatically upset the odds with Norris finishing six-tenths clear.
Hamilton was unable to get temperature into his slick tyres and spun in the closing stages of his final lap.
Max Verstappen, who holds a five-point championship lead over Hamilton, will start from the back of the grid after taking on his fourth engine – one more than is permitted for the season.
With his penalty in mind, and the risk of damage high given the slippery conditions, Verstappen completed a mandatory single lap before parking his Red Bull.
Norris’ superb lap, which makes him the youngest British pole-sitter in the sport’s history, comes off the back of McLaren’s first victory in nine years at the Italian Grand Prix a fortnight ago.
“Oh boy,” said Norris. “It feels amazing. I don’t know what to say. It was a manic session. You never think you are going to get a pole but I have managed to do it.
“It was tough. I am going to make myself sound good. The lap before I was two seconds down and I wasn’t confident I could improve but I kept the tyres warm. I risked quite a bit and it paid off so I am a happy boy.
“It is my first pole position, hopefully the first of many, and I don’t know what to say. It is not something we expected but we took the opportunity.”
Mercedes have won every grand prix staged on Sochi soil since the race was added to the calendar in 2014, but Hamilton will have his work cut out to not only retain his team’s unbeaten record, but assume control of the championship in his bid for a record-breaking eighth crown.
Qualifying appeared in danger of being scrapped after final practice was cancelled following a deluge of rain, accompanied by thunder and lightning.
But the poor weather eased in time, and after finishing fastest in Q1 and Q2 Hamilton looked destined to take advantage of Verstappen’s grid penalty.
However, the seven-time world champion hit the wall on his entry to the pits for dry rubber. He took on a new front wing, but failed to get his tyres up to temperature to challenge Norris at the top of the time charts.
Behind Norris, Russell delivered another fine effort to qualify third in his Williams after securing second at last month’s rain-hit Belgian Grand Prix.
Norris’ McLaren team-mate Daniel Ricciardo finished fifth, ahead of double world champion Fernando Alonso. Valtteri Bottas qualified only seventh on a poor afternoon for Mercedes.
Register for free to continue reading
Registration is a free and easy way to support our truly independent journalism
By registering, you will also enjoy limited access to Premium articles, exclusive newsletters, commenting, and virtual events with our leading journalists
Already have an account? sign in