Fernando Alonso led from pole position to chequered flag to win the German Grand Prix for Ferrari on Sunday and extend his lead at the top of the Formula One championship to 34 points.

Red Bull’s Sebastian Vettel finished second, overtaking McLaren’s Jenson Button on the penultimate lap in a controversial move that stewards are investigating.

World champion Vettel, who has yet to win his home Grand Prix — and indeed any race in July — went wide and off the track to get past the Briton.

Alonso now has 154 points to 120 for Red Bull’s Australian Mark Webber, who finished eighth. Vettel — if the stewards uphold his second place — has 118 after 10 of the season’s 20 races.

Button’s podium finish was a boost for him and McLaren after the team struggled in recent outings but the victory was soured by Lewis Hamilton suffering a puncture early in his 100th race and having to retire.

Alonso started on pole and held off challenges from Vettel, and then Button, as he stormed to victory in warm, sunny conditions — a stark contrast from the heavy rain which fell during practice and qualifying.

Alonso briefly surrendered his lead after the first of his two pit stops, but the double champion otherwise dominated the race.

Webber, winner of the previous race at Silverstone, had started eighth after a five-place demotion on the starting grid for an unauthorised gearbox change.

The results: 1. Fernando Alonso (Ferrari) 1:31:05.862, 2. Sebastian Vettel (Red Bull) +00:03.732, 3. Jenson Button (McLaren) +00:06.949, 4. Kimi Raikkonen (Lotus) +00:16.409, 5. Kamui Kobayashi (Sauber) +00:21.925), 6. Sergio Perez (Sauber) +00:27.896, 7. Michael Schumacher (Mercedes) +00:28.970, 8. Mark Webber (Red Bull) +00:46.941, 9. Nico Hulkenberg (Force India) +00:48.162, 10. Nico Rosberg (Mercedes) +00:48.889, 11. Paul di Resta (Force India) +00:59.227, 12. Felipe Massa (Ferrari) +01:11.428, 13. Daniel Ricciardo (Toro Rosso) +01:16.829, 14. Jean-Eric Vergne (Toro Rosso) +01:16.965.

15. Pastor Maldonado (Williams) +1 lap, 16. Vitaly Petrov (Caterham) +1 lap, 17. Bruno Senna (Williams) +1 lap 18. Romain Grosjean (Lotus) +1 lap, 19. Heikki Kovalainen (Caterham) +2 laps 20, Charles Pic (Marussia) +2 laps, 21. Pedro de la Rosa (HRT) +3 laps, 22. Timo Glock (Marussia) +3 laps, 23. Narain Karthikeyan (HRT) +3 laps. Lewis Hamilton (McLaren) retired, +11 laps.

Drivers’ standings: 1. Fernando Alonso 154, 2. Mark Webber 120, 3. Sebastian Vettel 118, 4. Kimi Raikkonen 95, 5. Lewis Hamilton 92, 6. Nico Rosberg 76, 7. Jenson Button 65, 8. Romain Grosjean 61, 9. Sergio Perez 47, 10. Kamui Kobayashi 31, 11. Pastor Maldonado 29, 12. Michael Schumacher 29, 13. Paul di Resta 27, 14. Felipe Massa 23, 15. Nico Hulkenberg 19, 16. Bruno Senna 18, 17. Jean-Eric Vergne 4, 18. Daniel Ricciardo 2. Constructors’ standings: RedBull-Renault 238, 2. Ferrari 177, 3. McLaren-Mercedes 157, 4. Lotus-Renault 156, 5. Mercedes 105, 6. Sauber-Ferrari 78, 7. Williams-Renault 47, 8. Force India-Mercedes 46, 9. Toro Rosso-Ferrari 6.

More In: Motorsport | Sport