Lewis Hamilton claimed pole position for the Belgian Grand Prix after an eventful finish to qualifying at Spa on Saturday.

The world championship leader produced a sensational final lap in wet conditions to jump ahead of Sebastian Vettel, who was unable to better his title rival in a dramatic conclusion to the session.

Force India's Esteban Ocon caused a surprise by claiming third position, with team-mate Sergio Perez joining him on the second row of the grid.

The Ferrari duo of Vettel and Kimi Raikkonen had set the pace in Q1 and Q2, only for the sudden arrival of rain to create an opportunity for Hamilton.

He duly made the most of the switch in tyres, with the brief downpour leading to all drivers moving from supersofts to intermediates early in Q3.

Hamilton had a brief trip onto the grass as track conditions became tricky, but the Brit held his nerve as the clock ticked down to claim the 78th pole of his F1 career.

"It was one of the toughest qualifying sessions I can remember," he said in an on-track interview at the conclusion of qualifying.

"The track looked dry in some places, but it was actually wet. It was so hard, I went off twice, but so glad I managed to keep it together. Everyone is on the edge of their seats."

After his early promise was doused by the change in conditions, Raikkonen had to settle for sixth position, meaning he will start Sunday's race alongside Haas' Romain Grosjean on the third row.

Max Verstappen finished just ahead of Red Bull colleague Daniel Ricciardo, while Valtteri Bottas - who, along with Stoffel Vandoorne, was reprimanded after an incident in Saturday's practice, was listed 10th but will start from the back of the grid due to an engine penalty.

PROVISIONAL CLASSIFICATION

1. Lewis Hamilton (Mercedes): 1:58.179secs
2. Sebastian Vettel (Ferrari): 1:58.905s
3. Esteban Ocon (Force India): 2:01.851s
4. Sergio Perez (Force India): 2:01.894s
5. Romain Grosjean (Haas): 2:02.122s
6. Kimi Raikkonen (Ferrari): 2:02.671s
7. Max Verstappen (Red Bull): 2:02.769s
8. Daniel Ricciardo (Red Bull): 2:02.939s
9. Kevin Magnussen (Haas): 2:04.933s
10. Valtteri Bottas (Mercedes)