From fifth on the grid, the 16-year-old Dutchman squeezed down the inside of second-row starters Felix Serralles and Felipe Guimaraes to take third at the La Source hairpin, while up front second qualifier John Bryant-Meisner passed poleman Esteban Ocon around the outside at Les Combes to take the lead.
On the second lap, Verstappen drafted Ocon and Bryant-Meisner in one move along the Kemmel straight to vault from third to first at Les Combes, Bryant-Meisner falling further to fourth when Serralles passed him at the Bus Stop chicane.
Ocon fought back on the following lap, drawing to the outside along the Kemmel straight – the two cars touched wheel to wheel, earning the championship-leading Frenchman a warning flag for a dangerous manoeuvre.
Ocon tried again on lap four, and the Lotus F1 Junior passed Verstappen around the outside into Les Combes. He moved over to claim the apex, but the loss of momentum allowed Verstappen to sensationally sweep around the outside at the left-hander immediately after.
From then on it was cat-and-mouse again, Ocon drawing closer to Verstappen in the slipstream, but the leader pulling away in the twisty middle sector of the lap.
But once again there was a safety car, caused when Hector Hurst collided with Antonio Giovinazzi at the Bus Stop, the Briton coming to a halt with deranged suspension too close to the track for safety.
That set up a three-lap dash to the finish, and the Prema Powerteam Dallara-Mercedes of Ocon had a couple of glances at taking the lead, but Verstappen held on in his Van Amersfoort Racing Dallara-Volkswagen.
Serralles fell into a fight with Gustavo Menezes for third, with Nicholas Latifi and Tom Blomqvist – up from a lowly grid position – joining the battle in the late stages.
Time and again Serralles and Menezes swapped positions, with the American finally beating the Puerto Rican to the flag thanks to a move at Les Combes on the final lap, once again making it two Van Amersfoort drivers on the podium.
Jake Dennis was jumped by Carlin team-mate Blomqvist on the restart but completed another strong weekend to take seventh, with Jules Szymkowiak, Felix Rosenqvist and Jordan King claiming the final point-scoring positions.
Rosenqvist was again in the wars, colliding once with Guimaraes at the Bus Stop to damage his front wing, and then hoofing the Brazilian off the track at La Source when he got caught out in a chain-reaction braking incident.
Bryant-Meisner, meanwhile, spent most of the race in the top 10 before slowing in the closing stages and retiring to the pits.
Results - 15 laps: Pos Driver Team/Car Time/Gap 1. Max Verstappen Van Amersfoort Dallara-VW 35m47.919s 2. Esteban Ocon Prema Dallara-Merc +0.495s 3. Gustavo Menezes Van Amersfoort Dallara-VW +2.266s 4. Felix Serralles West-Tec Dallara-Merc +3.090s 5. Nicholas Latifi Prema Dallara-Merc +3.912s 6. Tom Blomqvist Carlin Dallara-VW +4.230s 7. Jake Dennis Carlin Dallara-VW +5.284s 8. Jules Szymkowiak Van Amersfoort Dallara-VW +6.108s 9. Felix Rosenqvist Mucke Dallara-Merc +7.525s 10. Jordan King Carlin Dallara-VW +9.188s 11. Antonio Giovinazzi Carlin Dallara-VW +10.083s 12. Roy Nissany Mucke Dallara-Merc +10.527s 13. Lucas Auer Mucke Dallara-Merc +12.423s 14. Sean Gelael Carlin Dallara-VW +12.950s 15. Alexander Toril T-Sport Dallara-NBE +13.053s 16. Santino Ferrucci Eurointernational Dallara-Merc +13.399s 17. Antonio Fuoco Prema Dallara-Merc +14.067s 18. Tatiana Calderon Jo Zeller Dallara-Merc +17.219s 19. Mitchell Gilbert Fortec Dallara-Merc +17.851s 20. Michele Beretta Eurointernational Dallara-Merc +18.782s 21. Dennis van de Laar Prema Dallara-Merc +23.040s 22. Spike Goddard T-Sport Dallara-NBE +43.446s 23. John Bryant-Meisner Fortec Dallara-Merc -1 lap Retirements Felipe Guimaraes Double R Dallara-Merc 10 laps Hector Hurst West-Tec Dallara-Merc 8 laps Sandro Zeller Jo Zeller Dallara-Merc 6 laps