Mark Webber put in a dominant performance to win the Spanish Grand Prix from Fernando Alonso and team-mate Sebastian Vettel as Lewis Hamilton crashed out of second place on the penultimate lap.
Webber was faultless, leading the race from start to finish without ever really looking stretched. Hamilton looked set for a certain podium until a puncture denied him with two laps to go and he went straight on at the high-speed turn three. Alonso moved up to second place as a result, his reward for a calm and measured race in front of his home fans.
Vettel rounded out the podium, after a front-right wheel problem meant he had to pit for another set of tyres and eventually back off completely under braking in the closing laps. He had been keeping pace with Webber in the early stages, but dropped to third behind Hamilton at the first set of pit stops when his team struggled to replace a wheel. On rejoining the track the pair almost came together and Vettel had to take to the turn two run-off in avoidance. He then maintained a two-second gap to Hamilton until his problems struck and he dropped back.
Michael Schumacher scored his best result of the season in fourth, after a titanic battle with Jenson Button midway through the race. A slow pit stop saw Button lose position to Schumacher and a great battle between the two ensued. The McLaren was all over the Mercedes into turn one for several laps, but Schumacher showed his experience, blocking the inside line and shepherding Button wide on every attempt. Button's tyres started to fade, and with them, the likelihood of making a move stick.
While all the action took place in front, Felipe Massa closed on the pair but never looked like making a pass on Button. His car looked difficult to drive and at one point he slid into the rear of Karun Chandhok's HRT as he came up to lap it. Massa damaged his front wing but elected not to pit and in the end comfortably held onto position to finish sixth.
Adrian Sutil and Robert Kubica had relatively straight-forward races to finish seventh and eighth, while Rubens Barrichello took advantage of others misfortunes to recover to ninth from his disappointing qualifying performance. Jaime Alguersuari picked up the final point, driving a strong race at his home grand prix despite serving a drive-through penalty for tangling with Chandhok.
Outside the top ten, Nico Rosberg struggled all afternoon to end up finishing a lap down in 13th place. At the start he was pushed onto the grass by Kubica and then dropped back through the field, pitting twice in an attempt to find a better balance on new tyres. For a significant part of the race he was stuck behind Nico Hulkenberg, as damage to the Williams' floor saw Hulkenberg going backwards in the positions all afternoon. Jarno Trulli, Timo Glock and Lucas di Grassi were the only drivers to finish behind Hulkenberg and spent most of their races trying to stay out of the way of faster cars.