Rosberg, the world championship leader after two races, clocked 1min 33.185sec to edge Hamilton by 0.279sec as Mercedes stayed on course for a third win in three races this season.
It was German driver Rosberg's fifth career pole and first of this season after Hamilton had started from the front in Australia and Malaysia.
"Starting from pole is great but it's a whole different story tomorrow. The challenge waiting us is tyre degradation but I'm confident I can stay ahead in tomorrow's race," said Rosberg, who won the season opener in Australia.
Rosberg will head into Sunday's floodlit race with 43 points to his teammate's 25 after Hamilton, who made a slight error on his last flying lap, missed out on what would have been a third pole in three races in 2014.
Also Read
"I am not disappointed, congratulations to Nico. He has done a great job this weekend, he is improving and picking up the pace. I locked up in the last lap," said the 2008 world champion who won from lights to flag in Malaysia last week.
That leaves a second row featuring Finland's Valtteri Bottas in a Williams and Mexico's Sergio Perez of Force India.
Kimi Raikkonen in a Ferrari, Jenson Button, in a McLaren and racing in his 250th grand prix, are on the third row with Williams' Felipe Massa and Kevin Magnussen in the second McLaren on the fifth row.