The Mercedes driver produced the fastest lap in the dying seconds of the session, three-fourths of a second faster than Ferrari’s Vettel.
“That was one of the toughest (laps) I can remember,” said Hamilton who set a record for most number of pole positions (five) at the Spa-Francorchamps circuit.
Esteban Ocon took third place for the new Force India team under new ownership, ahead of teammate Sergio Perez and Romain Grosjean of Haas.
Kimi Raikkonen, in the second Ferrari, ended up sixth ahead of the two Red Bull Racing drivers Max Verstappen and Daniel Ricciardo.
Kevin Magnussen, in the second Haas, was ninth and Valtteri Bottas, in the second Mercedes, 10th.
Bottas will start the race from the back of the grid after collecting grid penalties for taking a new engine.
Hamilton leads the championship ahead of Vettel by 24 points.