Lewis Hamilton scored a fabulous victory for McLaren in a Chinese race of excellent drives, catching and passing Red Bull's Sebastian Vettel on the 52nd of the 56 laps as the reigning world champion's gamble on a two-stop strategy - and a 25-lap run on Pirelli's hard rubber - just failed to pay off.
Behind them, Mark Webber drove a brilliant race from 18th to third in the second Red Bull, only seven seconds behind Hamilton, after catching and despatching Mercedes' Michael Schumacher and Ferrari's Fernando Alonso, then doing the same to Ferrari's Felipe Massa, Nico Rosberg in the second Mercedes and McLaren's Jenson Button in the closing stages.
It was an odd race, that began with Button and Hamilton leading from Vettel, before Vettel repassed them as the first pit stops were made. He jumped Hamilton just before his stop on Lap 13, but admitted he was somewhat bemused when leader Button initially drove into the Red Bull pit before frantically being waved through to McLaren next door!
Rosberg had stopped on Lap 12 and then had a spell in the lead for Mercedes from Lap 17 until he stopped again on Lap 25. That put Vettel back in the lead until he stopped for the second and last time on Lap 31, whereupon Massa had a spell in front. The Brazilian was right back on form, comfortably outpacing team mate Fernando Alonso this day.
Such are the characteristics of the Pirellis that the form of races is not established until the final stints, and by Lap 40 Vettel was out front, 3.6s ahead of Massa with Rosberg third from Hamilton, who had overtaken Button. Steadily Massa reeled in Vettel, but it was the McLarens that were on the move. Hamilton took Rosberg on Lap 42, Massa on 44, and then slashed a 3.7s deficit to Vettel before forcing his way by in Turn Seven on the 52nd lap.
For a while it seemed that Button might follow suit, but Webber had the freshest tyres. He ran the primes until Lap 10, then switched to the softer options and, having made his final stop on Lap 40, was flying. As Button began to move in on Vettel, having passed Massa and Rosberg, Webber was stalking him and dived by on the penultimate lap to make the podium after a superb effort.
Three-stopping Rosberg was left fifth, ahead of the disillusioned Massa and Alonso for whom two-stop strategies had not worked out, while a decent afternoon's work left Schumacher eighth. Renault's two-stop strategy didn't do the trick either, but Vitaly Petrov took ninth place from Paul di Resta on the 52nd lap, and Kamui Kobayashi pushed the Scottish rookie out of the points for the first time in his short Formula One career soon afterwards.
By the finish Di Resta was under heavy pressure from Nick Heidfeld too, after the German had had an adventurous race trapped in the midfield. He held off the Renault, however, but was disappointed to miss out on a point after yet again being Force India's faster driver.
Rubens Barrichello was 13th for Williams after a race spent dicing mainly with Heikki Kovalainen's Lotus, while Toro Rosso's promising afternoon evaporated right at the start as Jaime Alguersuari and Sebastien Buemi dropped back. The Spaniard became the race's sole retirement when he lost the righ-rear wheel after his first pit stop, while Buemi had to be satisfied with 14th after a deeply disappointing afternoon.
The Swiss driver headed home Adrian Sutil, who was involved in a collision for which Sauber's Sergio Perez was given a drive-through penalty. The Mexican finished 17th, behind Kovalainen, and ahead of Williams' Pastor Maldonado and Jarno Trulli in the other Lotus, who had relatively uneventful races. Jerome D'Ambrosio was again Virgin's faster runner, heading home Timo Glock in 20th and 21st places, while Tonio Liuzzi caught and passed HRT team mate Narain Karthikeyan on the final lap after having to make up a lot of ground following a drive-through penalty early on for jumping the start.
Vettel now has 68 points from Hamilton's 47, with Button third on 38 from Webber's 37, Alonso's 26 and Massa's 24. Red Bull still lead the constructors' championship, with 105 points to McLaren's 85, Ferrari's 50 and Renault's 32.