Both Mercedes drivers will start on the soft compound Pirellis having used them to set their Q2 times.
Hamilton hit the front on supersofts on the first runs in Q3, lapping 0.229s faster than Mercedes teammate Valtteri Bottas.
That lap of 1m27.760s proved to be fast enough to secure pole position given renewed rain that hit the track in the middle of the session.
Vettel and Kimi Raikkonen, meanwhile, were sent out on intermediates at the start of Q3 in anticipation of the rain coming earlier.
Both were forced to abort their runs to take on slicks, meaning their first flying laps came just as rain was on the cusp of falling, and while Raikkonen was able to post a 1m29.521s to secure fourth behind Red Bull driver Max Verstappen, Vettel ran off the track at Spoon Curve after the rear stepped out and posted only a 1m32.192s.
For good measure, Vettel later went off through the gravel at Degner 1 while cruising in on slicks in the intensifying rain.
This allowed Haas driver Romain Grosjean, who will be the only driver in the top 10 to start on softs having brilliantly used the tyre to set his Q2 time, to take ‘Class B’ pole position in fifth.
That put him just over two tenths faster than Toro Rosso driver Brendon Hartley.
The Honda-powered team had set a target of having both cars in Q3 after using its ‘Spec 3’ engine for qualifying for the first time, and Hartley slotted in ahead of teammate Pierre Gasly in sixth.
Racing Point Force India duo Esteban Ocon and Sergio Perez were eighth and 10th, sandwiching Vettel’s Ferrari.
Perez also did not set a serious time, lapping 9.5s off the pace, having aborted his lap on his first run.
Sauber driver Charles Leclerc was the quickest of those eliminated in Q2, in which rain meant the first-run times decided the order.
Leclerc was 11th after his first run, but attempted to complete a lap on his second set of supersofts in the forlorn hope of breaking into the top 10 before spinning exiting Degner 1.
Haas driver Kevin Magnussen was 12th fastest, having used softs on his first run and lapping 0.548s slower than Grosjean in Q2 on the same compound.
Carlos Sainz was 13th for Renault ahead of Williams driver Lance Stroll.
Daniel Ricciardo was 15th after failing to set a time in Q2, cruising into the pits at the end of his out-lap with what appeared to be an engine problem.
Renault driver Nico Hulkenberg was eliminated in Q1, having had his first run compromised by a red flag caused by Marcus Ericsson crashing in Turn 7.
The Swede ran wide onto the grass through the left-hander then spun into the barrier on his second push lap, leading to a six-minute red flag.
Hulkenberg was, along with teammate Sainz and Perez, one of three drivers not to have set a time at that point, and after going out immediately after the restart was relegated into the drop zone by a flurry of improvements as Q1 was chequered-flagged.
Sainz was the driver whose improvement actually relegated Hulkenberg into the bottom five, with the German ending up just 0.044s slower than Stroll ahead.
Sergey Sirotkin was 17th, just 0.011s slower than Hulkenberg, with McLaren’s Fernando Alonso 18th on his first taste of the fastest supersoft Pirellis of the weekend.
Teammate Stoffel Vandoorne was 19th, having had to use soft rubber for his first run before moving onto supersofts, putting him ahead only of Ericsson.