Red Bull's Mark Webber beat Ferrari's Fernando Alonso in a close battle to win the British Grand Prix.
Alonso led much of the race from pole position, but Webber benefited from a different tyre strategy to chase the Spaniard down after the final pit stops.
Webber passed Alonso into Brooklands with four laps to go and held him off to the flag.
Red Bull's Sebastian Vettel took third ahead of Ferrari's Felipe Massa.
McLaren's Lewis Hamilton struggled to eighth and team-mate Jenson Button 10th.
The McLaren's lack of pace on the high-speed sweeps of Silverstone two weeks after it struggled on the slow-speed Valencia street circuit is a serious concern for Hamilton's title hopes.
He is now fourth in the championship, 37 points off Alonso, whose lead over Webber has been cut to 13 points. Vettel is third, 29 points behind Alonso.
McLaren, who started the season with the fastest car, appear to have been left behind by Red Bull and Ferrari, who have both improved their cars dramatically in recent races.
Alonso and Webber fought a private battle for victory, which was decided by tyre choices.
Ferrari chose - as McLaren did Hamilton - while Red Bull went for the more conventional choice of softs.
The decision meant that after the final pit stops Alonso was on the soft tyre and Webber on the hards, which turned out to be the better race tyre.
Webber closed a four-second deficit in eight laps and Alonso was helpless to fend off the Red Bull as Webber passed him around the outside of the Brooklands corner at the end of the DRS overtaking zone.
The Australian became after Alonso only the second driver to win two races this season.
He said: "I've had a few [wins], but this one is taking a little bit to sink in. It didn't look like a spectacular race between us initially, but it was one - pacing the stints on the tyres, Fernando starting on the harder tyre...
"After the first stint Fernando had I thought he was in good shape to close the win out. But it came our way and I am absolutely over the moon, absolutely rapt.
"I had a single opportunity to pounce and I wasn't going to let that slip. Fernando, with the front-left tyre, if you lose balance around this place, the speed is very high in that [second] sector and it's very hard for the driver to do something.
"It was obvious he was pushing as hard as possible but the balance wasn't with him."
Alonso said: "The victory was quite close today, but Mark was much quicker in the last laps and he deserves the victory. But I am very proud of the progress Ferrari have made in the last few weeks and we are now fighting for victories in the last few races."
The threatened rain never came, and the race took place in sunshine.
As Alonso and Webber battled at the front, Vettel, who slipped back from fourth on the grid to fifth behind Massa on the first lap, made use of an early first pit stop to pass the Brazilian.
Nevertheless, it was Massa's most impressive race for some time, and it was a timely performance as Ferrari consider who will partner Alonso at the team next year.
The Lotus drivers Kimi Raikkonen and Romain Grosjean were fifth and sixth, while Michael Schumacher, whose Mercedes faded from its third-place grid slot, passed Hamilton in the closing laps to take seventh.
Williams driver Bruno Senna and Button took the final points places.