Lewis Hamilton secured his third home win, but it was a victory the Briton was forced to work hard for as he dropped to third after the second corner.
Hamilton eventually won come the conclusion of the 52-lap race with team-mate Nico Rosberg finishing second and Ferrari's Sebastian Vettel third.
The familiar podium is no reflection of the race, which delivered some spectacular racing and saw Felipe Massa and Valtteri Bottas battling it out for the lead before rain arrived and spoiled their evening.
The Williams pair took control at the start, leaping Hamilton and Rosberg, but the Briton eventually passed Bottas to chase down Massa.
An early Safety Car was caused by contact between the two Lotus cars and the two McLarens, only one of which – Fernando Alonso – escaping without major damage.
At the restart however, Bottas passed Hamilton and once again made it a Williams 1-2. Bottas and Massa fought it out for several laps before the first round of stops dropped them back behind Hamilton who led until rain hit the circuit.
Rosberg was clearly quicker, but Hamilton's call to stop for intermediates came at just the right moment, unlike Rosberg's who came in a lap late and immediately fell back.
Meanwhile Vettel gained from the whole saga, passing the Williams cars which eventually finished fourth and fifth ahead of Red Bull's Daniil Kvyat.
Just 13 cars finished the race, helping Alonso to score his first point for McLaren in 2015.
# | Driver | Team | Gap | Points |
01. | L. Hamilton | Mercedes | 25 | |
02. | N. Rosberg | Mercedes | +10.9 | 18 |
03. | S. Vettel | Ferrari | +25.4 | 15 |
04. | F. Massa | Williams | +36.8 | 12 |
05. | V. Bottas | Williams | +63.1 | 10 |
06. | D. Kvyat | Red Bull | +63.9 | 8 |
07. | N. Hulkenberg | Force India | +78.7 | 6 |
08. | K. Raikkonen | Ferrari | +1 lap | 4 |
09. | S. Perez | Force India | +1 lap | 2 |
10. | F. Alonso | McLaren | +1 lap | 1 |
11. | M. Ericsson | Sauber | +1 lap | |
12. | R. Merhi | Marussia | +3 laps | |
13. | W. Stevens | Marussia | +3 laps | |
14. | C. Sainz | Toro Rosso | DNF | |
15. | D. Ricciardo | Red Bull | DNF | |
16. | M. Verstappen | Toro Rosso | DNF | |
17. | P. Maldonado | Lotus | DNF | |
18. | R. Grosjean | Lotus | DNF | |
19. | J. Button | McLaren | DNF | |
20. | F. Nasr | Sauber | DNS |