As Hamilton aborted his last lap, assuming he could not improve on a time which looked good for pole in wet conditions, Rosberg kept on pushing and found the final sector of the circuit had dried enough to go faster.
"It was Lewis' decision because he thought he cannot go quicker but Nico proved you can go quicker and he was proved right," said Mercedes' non-executive chairman Niki Lauda.
Hamilton, the 2008 world champion, threw away potential pole positions in the last two races in Canada and Austria, but looked on course to claim top spot at his home grand prix. However, he is now languishing down in sixth place on the starting grid.
"I don't have much of an answer," said the Englishman, who needs to win today to reduce the 29-point gap between the two title rivals with 11 races left. "I made a mistake and pulled out of the lap when I should have kept going.
"It was a tough qualifying with the changing conditions and we got through most of it really well, until the most important part. It was my decision, a bad call, and that decided my qualifying.
"I'm so sorry to have disappointed the fans as their support has been fantastic and I'll do what I can to have a great race for them [today].
"I need to have a start like I had in Austria two weeks ago and then do my best to get back to the front; you never know what might happen."
Having started ninth in Austria after mistakes on both of his runs in Q3, Hamilton was fourth by the end of the opening lap and is aiming to repeat such a feat when the lights go out at Silverstone today.
The Englishman was not the only one to make a major error of judgement on a changeable day which caught out some of the biggest names in the sport and rewarded some of those more used to lining up further back.
Ferrari and Williams both misjudged the weather completely and failed to get any of their drivers through the first phase, when rain started to fall before they had set quick enough times.
Fernando Alonso and Kimi Raikkonen qualified 19th and 20th respectively for Ferrari. Brazilian Felipe Massa, who took pole at the previous race in Austria, was 18th with Williams team-mate, Valtteri Bottas, 17th.
"It was a perfect storm," said Alonso. "It's a narrow line between becoming a hero and a big mistake and we became a big mistake today."
Rosberg, as so often this season, got it right when it mattered -even if he was almost denied his chance by Hamilton going slow in front of him. "It was a quite crazy qualifying," the German said. "It was quite wet. I told the guys 'that's it'. And then we were sitting in the box [garage] and we just came to a general conclusion that we might as well go out and have a look at the track.
"Then it seemed like we should give it a go, but even then I still didn't really believe that the track would be better. But what made it was the last sector. It was a lot drier."
Rosberg said he crossed the line to start his final lap a blink of an eye before the chequered flag and so close to Hamilton he was practically in his gearbox.
"With regards to the championship it's good for me that Lewis is down in sixth. It will take him some time to fight through, although I expect him to come through quite quickly," he added. "It's very likely we will be racing each other again. We seem to be very quick on this track, it really suits the car."
Red Bull's quadruple world champion Sebastian Vettel qualified alongside Rosberg on an all-German front row with McLaren's Jenson Button - who has never appeared on the podium at his home race - in third position.
The weekend is an emotional one for the English driver, his first home grand prix without his late father John, in whose memory he is wearing a special pink helmet - the colour of his father's 'lucky' race day shirt. Formula One fans have also been urged to wear "Pink for Papa" during the race as part of a charity appeal.