Mercedes' Lewis Hamilton defied the rain to extend his lead in the F1 drivers' championship with a second straight victory at the British Grand Prix.
The 2008 and 2014 world champion was overtaken by Felipe Massa at the start, and then by Valtterri Bottas, but normal service resumed amid inclement conditions.
Nico Rosberg went past both of the Williams drivers to finish in second, but Hamilton's lead in the title race is now 17 points after his third Silverstone career win.
Ferrari's Sebastian Vettel took advantage of some frantic late pit-stops to finish third, but Massa and Bottas were only fourth and fifth despite looking set for a podium place.
Daniil Kvyat, Nico Hulkenberg, Kimi Raikkonen, Sergio Perez and Fernando Alonso of McLaren – who recorded his first points of the season – complete the top 10 as just 13 drivers finished the race.
"We had poor grip at the start but it made the race more exciting and if I'm honest it made it more exciting for the fans," Hamilton said.
"For the first time in my career I made the perfect choice tyre wise so I am really happy with that. I lost a lot of temperature in my slicks."
Though starting from pole for the 46th time in his career, with just three of the previous 17 winners of the British Grand Prix starting from first there were no guarantees that Hamilton could lead from the front to grab a second straight Silverstone win.
And the misleading importance of leading from the front rung true from the start as Hamilton was passed by Massa, and he had to be at his best to keep Bottas at bay as the Williams pair produced a storming start.
Both Lotus drivers Pastor Maldonado and Romain Grosjean and McLaren's Jenson Button were among the host of early retirements on the opening lap, the Briton's race at his home race ending after a collision with Fernando Alonso.
At the front, a safety car saw Bottas pass Hamilton after a front lock-up upon the re-start as Williams' dominance continued.
In an attempt to reverse his fortunes, Hamilton pitted first for a fresh set of options and after a lap in clean air, he overtook both Massa and Bottas, while Rosberg trailed the pair.
Hamilton pulled away from the chasing pack, opening up a lead of six seconds before the first bout of rain came, but the two-time world champion tiptoed his way through the inclement conditions to retain his lead.
Rosberg got past Bottas and Massa in successive laps as the Williams cars struggled in the damp conditions and the German continued to make good progress as a second round of rain hit the circuit.
The reigning world champion reacted to Rosberg's move by changing onto intermediate tyres with just eight laps remaining, with rain only affect certain areas of the track.
But as the conditions worsened Hamilton's move appeared inspired as Rosberg reacted a lap later and too late to affect the result while Vettel took advantage of the uncertainty to slalom into third ahead of the Williams.