As the Englishman sped away at the start, a slow getaway for team mate Nico Rosberg saw the championship leader drop as low as seventh before beginning a recovery that would eventually see him finish second, 18s adrift. His difficulties were compounded by lack of telemetry on his F1 W05.
Front-row starter Daniel Ricciardo was also slow away as both Fernando Alonso and Felipe Massa burst through. But as the Ferrari and the Williams dramatically banged wheels, Sebastian Vettel was able to snatch second ahead of the aggressive Spaniard.
This day Red Bull did not have the pace to keep ahead of the red car, however, and Alonso was able to take Ferrari’s first podium finish of the season, finishing 23.6s behind Hamilton.
For the second race in a row Vettel was obliged to move over and let Ricciardo go, doing it with reluctance on the 25th lap, once he learned they were on the same medium-compound Pirelli tyre and the same two-stop strategy. A late charge, allied to some locking up by Alonso, enabled the Australian to close the gap to third, but at the flag he was still 3.5s behind. Vettel, however, was another 20.6s down the road, albeit well ahead of a big scrap between the underrated Nico Hulkenberg and the aggressive Bottas, whose Williams had also been in the wars in the first corner after a collision with Rosberg. By the flag the Finn was only 1.4s behind the German.
The second Ferrari of Kimi Raikkonen had a lonely and unspectacular run to eighth, well ahead of the equally lonely Sergio Perez in the second Force India, while 10th place fell - you probably guessed it - to the super-consistent Daniil Kvyat in his Toro Rosso.
The Russian had a good fight with team mate Jean-Eric Vergne and the uncompetitive McLarens of Jenson Button and Kevin Magnussen, whose lack of downforce really hurt them this weekend. In the end Button led Vergne and Magnussen home, but was more than 10s off his points-scoring opposition.
Pastor Maldonado had a clean race this time out and took 14th place for Lotus, after team mate Romain Grosjean’s determined challenge for points ended with gearbox trouble.
Poor Massa lost a huge amount of time with rear wheel problems during his first pit stop and could only recover from last to 15th, ahead of Esteban Gutierrez’s three-stopping Sauber.
Caterham’s Kamui Kobayashi also stopped three times, and almost managed to squeak ahead of arch-rival Jules Bianchi’s Marussia towards the end of the race, the results of which were declared on lap 54/56 after the chequered flag was shown early. Their team mates were 19th and 20th, with Marussia’s Max Chilton leading Marcus Ericsson home.
The only other retirement apart from Grosjean was Adrian Sutil, whose Sauber went out early with power unit problems.
Despite Hamilton’s victory, Rosberg keeps the championship lead with 79 points, but his team mate is now only four points behind on 75. Alonso jumps to third with 41 ahead of Hulkenberg on 36. Vettel is fifth with 33, as Ricciardo shares sixth with Bottas. Mercedes have almost a 100-point lead in the constructors’ stakes, with 154 to Red Bull’s 57, as Force India drop to third on 54 ahead of Ferrari on 52, McLaren on 43 and Williams on 36.