Fernando Alonso extended his Formula 1 world championship lead by fending off Sebastian Vettel and a resurgent Jenson Button to win the German Grand Prix at Hockenheim.
Alonso never had a huge lead in his Ferrari, but did enough to keep the chasing Red Bull and McLaren at bay. In the end he was helped by Vettel and Button battling to the finish, their dice finally settled by a penultimate-lap pass from the Red Bull.
The result stretched Alonso's championship cushion to 34 points, as Silverstone winner Mark Webber finished a muted eighth.
In a similar scenario to the previous race in Britain, Alonso spent the grand prix under increasing pressure. The Ferrari established a slight cushion over Vettel's Red Bull in the opening stint on soft tyres, then came under greater threat once they changed to medium Pirellis at the first pitstops.
By that time Button was also in the fight. The Briton overtook Michael Schumacher and Nico Hulkenberg early on, then closed in on the top two, gaining some ground when his team-mate Lewis Hamilton - who had been delayed with an early puncture - unlapped himself from Vettel.
Stopping a lap earlier than the champion at the final tyre changes then allowed Button to sweep into second place. He resisted Vettel's attempted retaliation at the hairpin, and then set off after Alonso.
But in the closing laps it was Button who was under pressure as Vettel attacked. The Red Bull went down the outside into the hairpin with a lap to go and used the run-off area on the exit to complete a pass then did not impress Button, although the Briton still claimed his first podium since April's Chinese GP. The stewards are investigating the move.
Kimi Raikkonen took an ultimately lonely fourth for Lotus, as the Saubers showed great race pace and tyre life - Kamui Kobayashi and Sergio Perez coming through to fifth and sixth from their midfield grid slots.
Perez held on amid late pressure from Schumacher's Mercedes, which was running a three-stop strategy and charging back on fresh soft tyres.
Webber never featured near the front and took eighth, just ahead of Hulkenberg. The Force India driver drifted down the order as the race progressed, with his team-mate Paul di Resta ending up behind Nico Rosberg's Mercedes in 11th. Rosberg also pitted three times and managed to make up ground well after his practice and qualifying dramas.
Hamilton was one of several drivers delayed in first-lap incidents in which either contact or debris caused damage. The McLaren eventually retired, while fellow early pit visitors Felipe Massa, Bruno Senna and Romain Grosjean kept racing and got back to 12th, 17th and 18th respectively. Also in trouble was Senna's Williams team-mate Pastor Maldonado, who appeared to be suffering high tyre wear as he slumped to 15th.
PROVISIONAL RACE RESULTS The German Grand Prix Hockenheimring, Germany; 67 laps; 306.458km; Weather: Sunny. Classified: Pos Driver Team Time 1. Alonso Ferrari 1h31:05.862 2. Vettel Red Bull-Renault + 3.732 3. Button McLaren-Mercedes + 6.949 4. Raikkonen Lotus-Renault + 16.409 5. Kobayashi Sauber-Ferrari + 21.925 6. Perez Sauber-Ferrari + 27.896 7. Schumacher Mercedes + 28.960 8. Webber Red Bull-Renault + 46.900 9. Hulkenberg Force India-Mercedes + 48.162 10. Rosberg Mercedes + 48.889 11. Di Resta Force India-Mercedes + 59.227 12. Massa Ferrari + 1:11.428 13. Ricciardo Toro Rosso-Ferrari + 1:16.829 14. Vergne Toro Rosso-Ferrari + 1:16.965 15. Maldonado Williams-Renault + 1 lap 16. Petrov Caterham-Renault + 1 lap 17. Senna Williams-Renault + 1 lap 18. Grosjean Lotus-Renault + 1 lap 19. Kovalainen Caterham-Renault + 2 laps 20. Pic Marussia-Cosworth + 2 laps 21. De la Rosa HRT-Cosworth + 3 laps 22. Glock Marussia-Cosworth + 3 laps 23. Karthikeyan HRT-Cosworth + 3 laps Fastest lap: Schumacher, 1:18.275 Not classified/retirements: Driver Team On lap Hamilton McLaren-Mercedes 58 World Championship standings, round 10: Drivers: Constructors: 1. Alonso 154 1. Red Bull-Renault 238 2. Webber 120 2. Ferrari 177 3. Vettel 118 3. McLaren-Mercedes 157 4. Raikkonen 95 4. Lotus-Renault 156 5. Hamilton 92 5. Mercedes 105 6. Rosberg 76 6. Sauber-Ferrari 78 7. Button 65 7. Williams-Renault 47 8. Grosjean 61 8. Force India-Mercedes 46 9. Perez 47 9. Toro Rosso-Ferrari 6 10. Kobayashi 31 11. Maldonado 29 12. Schumacher 29 13. Di Resta 27 14. Massa 23 15. Hulkenberg 19 16. Senna 18 17. Vergne 4 18. Ricciardo 2 All timing unofficial