On the final laps in Q3, Hamilton failed to improve on his initial 1:19.149s time, while Vettel overcame engine troubles and hybrid problems to take second, just 0.051s down on the W08.
Vettel split the Mercedes pair, with Valtteri Bottas ending up in third place, being the lead Finn on the second row, ahead of Kimi Raikkonen.
The third row is an all Red Bull affair, Max Verstappen maintaining his advantage over Daniel Ricciardo.
In seventh is Fernando Alonso. The same Fernando Alonso, who on Friday morning suffered an engine failure in his McLaren on the install lap.
Incredibly, Alonso was ahead of three Mercedes powered cars, those of the Force India pair of Sergio Perez and Esteban Ocon sandwiching Felipe Massa's Williams.
Q3 on a knife-edge
On the final laps in Q3, both Hamilton and Bottas failed to improve on their times, leaving the door open for Vettel and Raikkonen to recover from de-rating and understeer problems, respectively, on the first laps, but were unable to.
Vettel did improve, from fourth, but fell just 0.051s short of the time he neede d to take pole from Hamilton.
Bottas, who went wide on the exit of the final chicane on first runs, was bumped from the front-row for the third Hamilton-Vettel front-row of the season.
The Red Bulls were closer to the leading two teams, but were still in a relative no-mans-land- ahead of the impressive Alonso and the Force India's and sole remaining Williams.
Haas double Q2 elimination
Kevin Magnussen was the unlucky driver to miss out in 11th, less than a tenth down on a time he needed, while team-mate Romain Grosjean aborted his final lap, after a mistake at the chicane and pitted in, starting 14th.
Carlos Sainz Jr did not find as much time as those around him, only 0.015s and was dumped out in front of his home crowd, along with Renault's Nico Hulkenberg who failed to make Q3 for the first time this season, with Pascal Wehrlein also making Q2 but going no further.
Up front, in an inkling of what was to come, Vettel lapped just 0.085s slower than Hamilton, and 0.005s quicker than Bottas.
Vettel problems in Q1
After car issues in final practice, Vettel thanking his mechanics over the radio, the German was told to stop the car out on track. But he carried on and the issue soon fixed itself, as Grosjean spun at the final chicane again.
Daniil Kvyat suffered for balance, and will start last, just behind Stoffel Vandoorne and Lance Stroll.
Jolyon Palmer's luck did not improve and he dropped out as did Sauber's Marcus Ericsson.
|5th||Max Verstappen||Red Bull|
|6th||Daniel Ricciardo||Red Bull|
|8th||Sergio Perez||Force India|
|10th||Esteban Ocon||Force India|
|12th||Carlos Sainz Jr||Toro Rosso|
|20th||Danill Kvyat||Toro Rosso|