Lewis Hamilton took his second victory on the trot but Fernando Alonso pushed him every millimetre of the way.
The two McLarens were literally that close as the pair fought each other on the track and in the pits.
Ferrari were back on form – but they couldn’t touch the flying McLarens.
The race began with what looked like an action replay of the start of the Canadian race – Alonso got a better start than Hamilton and tried to pass him on the outside. Hamilton prevailed – but Alonso kept his car on the track this time, and Felipe Massa slotted in behind him.
Kimi Raikkonen was the only leading driver to start on the harder compound tyres at the start and they didn’t serve him well. Nick Heidfeld out dragged him to the first corner and Heikki Kovalainen passed his fellow Finn around the outside.
Behind them the tightly packed midfield erupted into chaos. Ralf Schumacher’s Toyota swung hard into David Coulthard’s Red Bull, putting both cars out. Barrichello was also caught up and broke the front-left suspension, ending his race after one lap.
Rookie Sebastian Vettel arrived at the first corner too quickly, but skittered across the gravel trap without hitting anyone.
The incidents were taken care of without resort to the safety car and as lap two began Giancarlo Fisichella pirouetted off the track at turn four, falling to last.
Vitantonio Liuzzi had taken 11th at the start from 19th on the grid and had Alexander Wurz behind him. The Williams driver made repeated attempts to get past the Toro Rosso, but didn’t have the straight line speed on the straight to get ahead. Liuzzi defended magnificently even as he fell up to 25 seconds behind tenth placed Vettel by lap 18.
Fisichella began his fight back, passing Scott Speed on lap 13 and quickly catching the Liuzzi-Wurz battle.
The stewards announced they were looking into a suspected pass under yellow flags by Takuma Sato on Jenson Button. On the track Sato neatly passed Adrian Sutil around the outside of the first corner – and promptly spun off at turn four just as Fisichella had done.
Heidfeld lost third place on lap 21 when he went straight on at the first corner. He came back on between the battling Finns – Kovalainen and Raikkonen.
Meanwhile a marshal had dropped his blue flag on the main straight. McLaren – perhaps fearing a safety car appearance, perhaps wanting to keep their drivers clear of an approaching clump of traffic – began their pit stops on lap 22. Massa and Heidfeld came in at the same time, and Alonso on the next lap.
Fisichella continued his battle through the midfield and devised a novel pass through turns six and seven, elbowing Wurz aside on lap 26. He repeated the move on Liuzzi four laps later, albeit without making contact with the Toro Rosso.
Alonso was gradually reducing Hamilton’s lead, finding 1.5s from laps 26-29. Part of Hamilton’s problem was traffic – but even as he hit clear air Alonso took two tenths of a second out of him on each lap. By lap 34 Alonso’s advantage was 0.6s, and they were approaching Liuzzi, Wurz, Button, Speed and Anthony Davidson to lap them.
On lap 38 Hamilton faltered in traffic going through the hairpin and suddenly Alonso was on him. They scorched across the line with a tenth of a second between them, Hamilton held the inside line and kept the lead – another exquisite piece of defence.
Alonso wasn’t happy – next lap around he swerved towards the pit wall to indicate his displeasure at Hamilton’s defensive driving. It looked like an over-reaction – this was hardly Estoril ’88.
With 12 seconds between the leading McLarens and Massa’s Ferrari, it looked like their race to lose – and the drivers were still fighting for the win.
Nico Rosberg made his softer compound tyres last until lap 41 before he came in for a pit stop. His one stop strategy might have helped him move up the field if the fuelling hose hadn’t stuck on the car.
Hamilton pulled out another half second’s advantage over Alonso on lap 43 as he set a 1’13.8s lap. Only one other driver was able to lap as fast – Raikkonen – who had gotten his stint on the harder tyres out of the way and could run the softer rubber until the end.
Fisichella had progressed as far as 11th but behind him was the hugely impressive Adrian Sutil, holding 12th having made one pit stop.
Raikkonen underlined his speed on lap 48, setting the fastest first sector time so far. Despite his earlier delays he was now only 2.1s behind team mate Massa.
Heidfeld was the first of the second stoppers on lap 49. With the final stops closing in Alonso had fallen to 2.5s behind Hamilton.
Alonso was the first of the McLarens to pit on lap 50 – explaining his displeasure at being unable to pass Hamilton before. The Briton was in on the next lap, smoking his tyres as he braked for the pit lane speed limit line.
Alonso had produced a very quick out lap and cut Hamilton’s lead to 1.7s. Raikkonen pitted at the same time as Hamilton and Massa on the following lap – the Brazilian emerging from the pits narrowly ahead of his team mate.
Despite switching to the harder compound tyres the McLaren drivers were straight into the mid 1’13s laps – this didn’t look like them nursing the cars until the end.
Lap 56 saw the first mechanical retirement of the race – Heidfeld pulled his BMW over, unable to drag it to the pits. It dropped BMW out of the points but Vettel was holding ninth, just over four seconds behind Trulli.
Webber was the last of the two-stoppers to come in, with only 14 laps to go. He came out ahead of Trulli but the Toyota driver muscled his way past at the hairpins to take seventh.
The Red Bull driver hit back straight away, diving down the inside of turn one but cutting the corner completely. Trulli got out of the way, and as Webber came back on the track he had to let the Toyota past – but that brought Vettel within range.
Up front the McLarens seemed to be managing their lead, lapping consistently in the low 1’14s. Raikkonen didn’t look very much like taking the final podium position from Massa – until the Brazilian made a mistake on lap 65 and the Finn was all over him again.
Davidson zapped past Button down the inside of the first corner on lap 67 – the Britons exchanging 12th place.
Rosberg suffered a cruel failure within sight of the flag on lap – his Williams coasting to a halt, the Toyota engine ablaze while, ironically, Trulli flashed past to take sixth.
Liuzzi’s Toro Rosso also gave up, the Italian cruising in on the next lap.
But there were no such problems for the McLarens – who sailed across the line to take their third consecutive one-two. As he coasted towards the first corner, Alonso rolled up alongside to congratulate him.
The Ferraris followed them in and Kovalainen took another good finish with fifth. Trulli gave Toyota some crucial points with sixth, Webber got his first score of the year in seventh – and Vettel the first of his career in eighth.
But Hamilton now has a ten point advantage as the teams prepare for the grind of the European season. He came onto the podium arm-in-arm with his closest ally and fiercest rival – Alonso.
Drivers’ championship standings after round seven
1. Lewis Hamilton 58
2. Fernando Alonso 48
3. Felipe Massa 39
4. Kimi Raikkonen 32
5. Nick Heidfeld 26
6. Giancarlo Fisichella 13
=7. Heikki Kovalainen 12
=7. Robert Kubica 12
9. Alexander Wurz 8
10. Jarno Trulli 7
11. Nico Rosberg 5
=12. David Coulthard 4
=12. Takuma Sato 4
=14. Mark Webber 2
=14. Ralf Schumacher 2
15. Sebastian Vettel 1
Constructors’ championship standings after round seven
1. McLaren 106
2. Ferrari 71
3. BMW 39
4. Renault 25
5. Williams 13
6. Toyota 9
7. Red Bull 6
8. Super Aguri 4