Lewis Hamilton achieved Silverstone redemption as he won the British Grand Prix to close in on Nico Rosberg in the drivers' championship.

Cutting a forlorn figure on Saturday having made an error in qualifying, Hamilton started the race in sixth but, either side of a red flag following a major shunt for Kimi Raikkonen, he navigated his way up the field before taking the lead as Mercedes teammate Rosberg ran into mechanical problems.

Having seen Hamilton endure the majority of hard luck with reliability heading into the 50th grand prix staged at Silverstone, Rosberg suffered a gearbox issue which saw him retire from the lead 21 laps from the chequered flag.

Hamilton started sixth and was up to fourth after the first four corners when the race was red-flagged following a heavy crash involving Ferrari's Kimi Raikkonen.

The Finn ran off the track through Turn Four and spun as he rejoined and Raikkonen speared into the barriers.

Grove-based Williams driver Felipe Massa clipped the Ferrari as it spun across the track.

The race was stopped to repair the barriers damaged by the heavy impact from the Ferrari, and Raikkonen was taken to the medical centre, where he was diagnosed with bruising to his ankles.

Hamilton then went on and cantered to his fifth win of the season and his second career victory in front of a home crowd to move to within four points of Rosberg, while Williams overcame a miserable weekend to seal a memorable second place through Valtteri Bottas.

Red Bull's Daniel Ricciardo took third ahead of Jenson Button, who ran out of time as he closed in during the final laps, finishing within a second of the Australian.

The Enstone-based Renault of Romain Grosjean come home 12th with teammate Pastor Maldonado retiring on lap 49.

Jules Bianchi and Max Chilton, driving for Banbury's Marussia team, finished 14th and 16th respectively.

Caterham, whose headquarters are at Leafield, saw Kamui Kobayashi come home 15th, with Marcus Ericsson retiring on lap 11.