In a dramatic race packed with incident, Vettel suffered a late puncture and finished seventh for Ferrari after his team-mate Kimi Raikkonen also pitted with a similar problem in the closing stages.
Hamilton’s victory, a record-equalling fifth in his home event and the 57th of his career, rebooted his title challenge as he came home ahead of team-mate Valtteri Bottas, who started ninth, in a dominant Mercedes one-two finish.
"It’s a feeling I just can’t describe really," said a delighted Hamilton. "Look at this crowd. Thank you to everyone who turned up. God bless you!
"It was incredible – I was inspired by all the kids who came."
Raikkonen was third for Ferrari, after the Italian team had made a strategic gamble with their tyres, ahead of Max Verstappen and his Red Bull team-mate Daniel Ricciardo, who had started 19th on the grid.
Nico Hulkenberg finished sixth for Renault ahead of Vettel, Esteban Ocon and his Force India team-mate Sergio Perez and Felipe Massa, who came home 10th for Williams.
Bottas said: "I am really happy for this today. It was not easy, with so many cars to get through, but the team did a perfect strategy. I just kept my head down and we managed it."
Raikkonen said he was disappointed with his misfortune, but Vettel said he did not blame the team. "It’s just one of those things," said the German.
Hamilton made a perfect getaway under heavy grey skies while Vettel had flames leaping from his Ferrari’s brake drum, a distraction that did nothing to stop Verstappen passing him for third on the opening lap.
The two Toro Rosso cars clashed at Chapel where Carlos Sainz spun off into retirement, having collided with Daniil Kvyat’s car. The Spaniard also made contact with Kevin Magnussen’s Haas. After an investigation, the stewards gave Kvyat a drive-through penalty.
This accident brought out the safety car for four laps before racing resumed with Hamilton back in control ahead of Raikkonen and Verstappen while Ricciardo climbed to 12th.
- Vettel, Verstappen duel -
Bottas, having started ninth after taking a penalty for an unscheduled gearbox change, was soon up to fifth with a set of clean passes.
Vettel and Verstappen were scrapping on and off the track in a fight for third, giving the packed crowd several thrilling moments.
Vettel, frustrated by his inability to pass the Dutchman, pitted after 19 laps and rejoined sixth, but moved ahead when Verstappen pitted the following lap and came out behind the German.
This gave Bottas his chance to take third ahead of Vettel and Verstappen, both having swept past Hulkenberg, to run behind Hamilton who led Raikkonen by six seconds.
By lap 24, Hamilton had a cushion of more than 10 seconds on Raikkonen but knew Bottas was a threat too as the only top driver to have started on softs rather than super-softs.
He rejoined in front of his team-mate and the pair led the field with Raikkonen third ahead of Vettel, the Ferraris waiting for Bottas to pit.
He finally came in at the end of lap 32 and rejoined fourth behind the Ferraris on fresh super-soft tyres. There was further bad luck for Fernando Alonso though when he retired with yet another engine failure.
With 10 laps remaining, Hamilton was clear by 12 seconds and Bottas, fourth, was closing on Vettel, intent on fighting for a podium finish.
The Finn tried to pass him on lap 42, when Vettel defended his position, but succeeded a lap later by surging past on Hangar Straight into Stowe as the German's tyres faded.
This encouraged the men behind him to close in for the final laps as Hamilton reeled off another fastest lap to prove his mastery.
And then with two laps remaining, Raikkonen suffered a left-front puncture and had to pit, gifting Bottas second place and Vettel third before the German also suffered the same fate.