Valtteri Bottas finished third ahead of Charles Leclerc, while an early-race spin and then late retirement cost Sergio Perez badly in the second Red Bull.
When the lights went out for the 17 lap race, Verstappen made the better getaway – his initial movement putting out a fire on his left-front brake – and was immediately alongside Hamilton as they raced away from the grid.
Verstappen swept in Abbey in the lead and defend first place with a series of weaves down the Wellington straight and then rebuffed Hamilton's attack around the outside of Copse.
That move cost Hamilton momentum and Verstappen opened up a 1.1-second at the end of the opening tour – on which Fernando Alonso used his soft tyres (Bottas, Esteban Ocon and Kimi Raikkonen were the only other drivers to start on the red-walled rubber, with the rest on mediums) to gain six places from 11th on the grid to run sixth.
The two leaders quickly opened up a gap over Bottas, who took a few laps to join them running in the 1m30s bracket, with Verstappen and Hamilton exchanging fastest laps during the early tours.
By the halfway point, Verstappen had built a two second advantage, as he and Hamilton lapped in the low 1m30s and continued to pull away from Bottas, who was being chased by Ferrari's Charles Leclerc.
Alonso had been holding up the pack behind, having steamed around the outside of several rivals at the race's first corner, then taken advantage of the two McLarens and Perez battling on the opening lap, but was overtaken by Lando Norris on lap six and Daniel Ricciardo on lap nine – the first McLaren getting by with a dive to the inside of Village, while the other got by with a better exit from the tight right hander in their respective moves.
With Verstappen and Hamilton continuing to trade fastest laps up front, the gap between them fluctuated ever so slightly, as they both had to cope with their right front tyres blistering heavily.
Although the tyre issue did not have any major impact on their pace, Red Bull instructed Verstappen to avoid the kerbs in the closing laps – which dropped his lead from a maximum of 2.8s to 1.4s at the flag – where he sealed pole for Sunday's grand prix.
The decision to start Bottas on softs did not pay off for Mercedes, as he finished 7.5s behind Verstappen, albeit solidly head of Leclerc, who was a further 3.7s to maintain fourth on the grid for the main race.
Norris and Ricciardo chased the Ferrari home but were well behind after their battles with Alonso, who was given a warning for weaving down the straights as he held off Sebastian Vettel to the finish to take seventh – the Alpine driver having also been trying to break the tow when defending from the McLarens earlier on.
George Russell finished ninth for Williams ahead of Esteban Ocon, but Russell faces a post-race investigation into a lap one clash with Carlos Sainz at Brooklands.
The Williams driver locked up at the sweeping left-hander and ran into the side of the Ferrari, which was forced off and Sainz dropped to 18th before recovering back to 11th and 0.4s behind Ocon at the finish.
The race's big loser was Perez, who will start tomorrow's race from last place after retiring on the final lap.
The Red Bull driver had been running 18th after losing the rear of his RB16B running behind Alonso and Norris on lap five as they charged through Chapel – Perez going through a full 360-degree, high-speed spin and shooting through the grass and a gravel at the top of the Hanger straight.
He rejoined after just keeping his car from hitting the wall.
The race's other major incident involved the Haas duo on the opening lap, with Nikita Mazepin spinning after glancing the right-hand sidepod of teammate Mick Schumacher's car, which looped the Russian driver around, and he eventually came home 9.4s behind Schumacher.
|1||Max Verstappen||Red Bull||17||-|
|8||Sebastian Vettel||Aston Martin||17||44.439||44.439|
|11||Carlos Sainz Jr.||Ferrari||17||47.798||47.798|
|13||Kimi Raikkonen||Alfa Romeo||17||50.677||50.677|
|14||Lance Stroll||Aston Martin||17||52.179||52.179|
|15||Antonio Giovinazzi||Alfa Romeo||17||53.225||53.225|
|20||Sergio Perez||Red Bull||16|