Fernando Alonso ended Ferrari's victory drought by charging to his team's first victory of the year in the British Grand Prix.
Championship leader Sebastian Vettel and poleman Mark Webber had to settle for the remaining podium spots in the two Red Bulls, with Vettel just holding on in a huge late battle between the pair.
None of the British drivers made it onto the podium - Lewis Hamilton faded to fourth for McLaren after a superb early charge, and Jenson Button retired following a pit error.
The race had got underway in half-wet/half-dry conditions, with the area around the original start/finish area sodden but the new grid relatively dry by comparison.
Vettel got the jump on poleman Webber off the line, and charged into a comfortable early lead, while the Australian kept Alonso at bay in third.
Hamilton provided most of the initial action, making very rapid progress from his disappointing 10th on the grid to attack Felipe Massa's Ferrari for fourth within a handful of laps.
Michael Schumacher triggered the move to slicks tyres somewhat accidentally when he slithered into Kamui Kobayashi's Sauber on lap 10 and had to pit for a new front wing on his Mercedes, taking on dry rubber at the same time.
The German's immediate burst of pace convinced everyone else to come in, with Webber, Alonso and Hamilton choosing lap 12 while Vettel and Massa stayed out till lap 13.
Earlier proved slightly the better option, as by the time everyone was back up to speed on slicks, Vettel's lead over Webber was down to 3.3s, and rapidly getting smaller, although once the two Red Bulls were within 1.5s Vettel managed to raise his pace and keep his team-mate under control.
Alonso initially struggled to get temperature into his slicks and not only fell away from the Red Bulls, but lost third to a charging Hamilton into Copse.
But once the Ferrari and Pirellis were working in harmony again, Alonso started flying. He used DRS to sweep past Hamilton into Brooklands on lap 23, and both then started hunting down the Red Bulls.
They got close enough that when both Vettel and Webber had slow second pitstops on laps 26 and 27, they fell to third and fourth behind new leader Alonso and Hamilton.
Now in clear air, Alonso began to look unstoppable - storming away from Hamilton at a second per lap as the McLaren had to start focusing on holding off the Red Bulls.
He succeeded until the final pitstops, when Vettel stopped a lap sooner and jumped ahead. But even with the McLaren out of his way, Vettel could not catch the now dominant Alonso, who was long gone and heading for his first win since Korea last year.
With his team instructing him to save fuel, Hamilton backed off and lost third to Webber, who then caught Vettel and mounted a huge late effort to overtake his team-mate until ordered to 'maintain the gap' on the final lap.
The slowing Hamilton had Massa all over him going into the closing moments, but retained fourth in a wild, wheel-banging battle through the last corners of the race.
Button ran fifth until the final stops, when he was sent out with his right front wheel not properly attached and hard to park and retire in the pit exit.
Nico Rosberg made a two-stop strategy work to take sixth for Mercedes, just ahead of Sergio Perez's Sauber. Nick Heidfeld salvaged eighth from Renault's tough weekend, with Schumacher recovering well to take ninth, followed by Toro Rosso's Jaime Alguersuari, Adrian Sutil's Force India and Vitaly Petrov in the other Renault.
Paul di Resta's brilliant qualifying effort was wasted when a pitstop miscommunication badly delayed the Force India. He later needed a new front wing after clashing with Sebastien Buemi in an incident that forced the Toro Rosso to retire due to damage from a resultant puncture.
Story Credit: Autosport