McLaren's Jenson Button celebrated his 200th Formula One start by winning the Hungarian Grand Prix on Sunday after a thrilling race decided by tyre choices in slippery and wet conditions.
Red Bull's Sebastian Vettel was second despite an error-strewn race to increase his championship lead over teammate Mark Webber to 85 points and move him closer to defending his title with eight races left after the mid-season break.
Ferrari's Fernando Alonso was third.
Briton Button sealed his second victory of the season after being wheel to wheel with Lewis Hamilton only for his teammate to drop back to fourth after a choosing the wrong tyres in the rain and then serving a drive through penalty following a spin.
“Guys, perfect going into the summer break. Let's come back and win them all,” Button, who took his first Grand Prix victory here in 2006 and also in the rain, told his team over the radio.
The Briton has now won 11 Grand Prix races in a career that started with Williams in 2000.
“Congratulations to Jenson, he was pushing me hard the whole race and the better man won today,” said Hamilton, who led before it all went wrong. “Of course we would have loved a one-two, I feel like I let the team down a little bit but we'll bounce back at the next race.”
With cars sliding around as drizzle and tyre strategies came and went, the less than capacity crowd at the ageing Hungaroring were treated to a string of overtaking moves at a twisty circuit where passing had been difficult in the past.
Vettel made a good start from pole but Hamilton, winner of the previous race in Germany last Sunday, kept on the World champion's tail having been second on the grid.
The slippery track contributed to Vettel running wide early on and the Briton saw his chance to speed past before his afternoon went sour.
Button, third in qualifying and winner of the rain-hit Canadian GP, then also overtook the German in partially wet conditions as McLaren again showed its race superiority over the previously dominant Red Bull.
“I was struggling a bit on the first stint. It was quite tricky,” said Vettel, who now has 234 points to Webber's 149, Hamilton's 146, Alonso's 145 and Button's 134.
Red Bull has 383 points to McLaren's 280 in the Constructors' standings.
Drizzle had been in the air throughout Sunday and there was significant spray in some areas of the track early on.
Mercedes' Nico Rosberg cut past the two Ferraris of Felipe Massa and Fernando Alonso as well as Webber in the opening exchanges as drivers struggled to keep their cars from sliding.
Brazil's Massa, who suffered serious head injuries in an accident at the Hungaroring in 2009, then spun violently into the grass on lap eight and slipped down to ninth before fighting back up to sixth having started fourth on the grid.
Teammate Alonso soon got back past Rosberg, in his 100th F1race, to move up into fourth but the Spaniard slipped back again when passed by Webber on lap 15 only for the Australian to end up fifth as the weather constantly changed.
The results: 1. Jenson Button (McLaren) 1:46:42.337, 2. Sebastian Vettel (Red Bull-Renault) +00:03.588, 3. Fernando Alonso (Ferrari) 00:19.819, 4. Lewis Hamilton (McLaren) 00:48.338, 5. Mark Webber (Red Bull-Renault) 00:49.742, 6. Felipe Massa (Ferrari) 01:23.176, 7. Paul di Resta (Force India-Mercedes) 1 lap, 8. Sebastien Buemi (Toro Rosso-Ferrari) 1 lap, 9. Nico Rosberg (Mercedes) 1 lap, 10. Jaime Alguersuari (Toro Rosso-Ferrari) 1 lap, 11. Kamui Kobayashi (Sauber-Ferrari) 1 lap, 12. Vitaly Petrov (Renault) 1 lap, 13. Rubens Barrichello (Williams-Cosworth) 2 laps, 14. Adrian Sutil (Force India-Mercedes) 2 laps, 15. Sergio Perez (Sauber-Ferrari) 2 laps, 16. Pastor Maldonado (Williams-Cosworth) 2 laps, 17. Timo Glock (Virgin-Cosworth) 4 laps, 18. Daniel Ricciardo (HRT-Cosworth) 4 laps, 19. Jerome d'Ambrosio (Virgin-Cosworth) 5 laps, Heidfeld (Renault) 47 laps, Jarno Trulli (Lotus-Renault) 53 laps.
Overall standings: Drivers: 1. Vettel 216.0 pts, 2. Webber 139.0, 3. Hamilton 134.0, 4. Alonso 130.0, 5. Button 109.0, 6. Massa 62.0, 7. Rosberg 46.0, 8. Heidfeld 34.0, 9. Petrov 32.0, 10. Schumacher 32.0, 11. Kobayashi 27.0, 12. Sutil 18.0, 13. Alguersuari (ESP) 9.0, 14. Perez 8.0, 15. Buemi 8.0, 16. Barrichello 4.0, 17. di Resta 2.0.
Constructors: 1. Red Bull 355.0 pts, 2. McLaren 243.0, 3. Ferrari 192.0, 4. Mercedes GP 78.0, 5. Lotus-Renault 66.0, 6. Sauber 35.0, 7. Force India 20.0, 8. Toro Rosso 17.0, 9. Williams F1 4.0.