After slotting in behind Valtteri Bottas at the start of the race, the Mercedes drivers became embroiled in an enthralling battle in the first few laps.
But Hamilton was able to take advantage of a safety car after Antonio Giovinazzi went into the gravel, reverting to a one stop whilst Bottas had been put on a two-stop.
It put Hamilton in front of the Finn during the safety car phase. However, Bottas was able to build a big enough gap to the cars behind after the safety car to pit and retain second.
With Hamilton taking the fastest lap on the final lap of the race, it ensured Mercedes picked up the maximum amount of points at Silverstone and head closer to a sixth consecutive constructors championship.
Red Bull and Ferrari lock horns
Despite Ferrari and Red Bull not having the pace to win this weekend, the two teams found themselves embroiled in a closely fought battle throughout the race.
Max Verstappen and Charles Lerclerc had been fighting over the final place on the podium, having continued to go wheel to wheel following their fight at the Austrian GP.
The two youngsters were put on a two-stop – and both had pitted on the same lap, with Verstappen just coming out ahead of the Monegasque.
However, the Dutchman struggled for grip out of the pits, allowing Leclerc to get back past.
But after the safety car was called out, Leclerc pitted a lap later than those around him for a second stop, dropping him back to sixth. His team-mate Sebastian Vettel had gone longer into the race and made his first stop under the safety car, moving from sixth to third.
Following the safety car. Verstappen and Vettel locked horns and Verstappen went around the outside of the German heading into Stowe.
But Vettel misjudged his braking into Vale and shunted into the back of the Dutchman.
It left Vettel with a broken front wing and was handed a 10 second time penalty, whilst Verstappen was just able to recover onto the track.
Despite damage on his Red Bull, Verstappen nursed his car home to fifth place, whilst Vettel finished outside of the points.
Leclerc had managed to finish third in the race and Pierre Gasly secured his best result of the season in fourth.
Impressive day for McLaren
McLaren had a good day at Silverstone after Carlos Sainz picked up sixth place, just fending off Daniel Ricciardo behind in seventh.
Kimi Raikkonen finished eight, whilst Daniil Kvyat did an impressive drive to move up to ninth in his Toro Rosso after starting outside of the points.
Nico Hulkenberg rounded off the final points position in 10th for Renault.