Nico Rosberg out-qualified Lewis Hamilton at the Hungarian Grand Prix, with a Mercedes one-two a rare spot of normality on an otherwise crazy Saturday.
Red Bull duo Daniel Ricciardo and Max Verstappen had threatened to break up the championship-leading pair but they will fill the second row in third and fourth respectively. Sebastian Vettel was fifth, but almost a second off the pace of the leaders, having struggled to match long-run pace on Friday.
A biblical rainstorm half an hour out from Q1 caused chaos in qualifying, delaying the first session by 20 minutes, with a returning downpour causing the first of four red flags.
There was the tantalising prospect at one point of Rosberg and Hamilton being stranded in 20th and 21st, but the elimination of Renault pair Kevin Magnussen and Jolyon Palmer was the only slight surprise, having displayed top-10 potential in Saturday practice.
Hamilton scraped into Q3 as the drying track caused yet more bedlam, with Kimi Raikkonen not so fortunate. The Finn will start 14th.
Hamilton laid down an impressive marker to start Q3, almost three tenths quicker than his team-mate with a weekend-leading 1:20.499. It looked to be enough, despite seeing his final flying lap torpedoed by yellow flags as Fernando Alonso spun in the final sector - Hamilton having set personal bests in sectors one and two.
However the McLaren quickly got going again, clearing the yellow flags and allowing Rosberg to continue at full pelt. And the championship leader, who is just one point ahead of Hamilton heading into a race at which he has never reached the podium, took full advantage, clocking 1:19.965 to take pole.
Hamilton has four race wins in Hungary to his name, and will start Sunday in confident mood, although Verstappen and Ricciardo lurk dangerously on a twisty track that favours Red Bull's aerodynamic package.
1. Nico Rosberg (Mercedes) 1:19.965
2. Lewis Hamilton (Mercedes) +0.143secs
3. Daniel Ricciardo (Red Bull) +0.315s
4. Max Verstappen (Red Bull) +0.592s
5. Sebastian Vettel (Ferrari) +0.592s
6. Carlos Sainz Jr (Toro Rosso) +1.166s
7. Fernando Alonso (McLaren) +1.246s
8. Jenson Button (McLaren) +1.632s
9. Nico Hulkenberg (Force India) +1.858s
10. Valtteri Bottas (Williams) +2.217s