McLaren's Fernando Alonso won a battle with team-mate Lewis Hamilton to take victory in the Monaco Grand Prix for the second year in a row.
Alonso drove superbly to fend off Hamilton's challenge
The world champion held off Hamilton with help from team strategy to take his second win of the season and retake the world championship lead.
The two men were in a race of their own, with Ferrari driver Felipe Massa unable to keep pace in third place.
Giancarlo Fisichella gave Renault their best result of the year with fourth.
The result leaves Alonso and Hamilton level on 38 points at the head of the championship, which the double world champion leads by virtue of his two wins to Hamilton's none.
Englishman Hamilton was impressive on his debut at one of Formula One's most demanding tracks, and might have won had team orders not intervened.
The two McLaren drivers were closely matched in the first part of the race.
I knew we were both extremely quick, so I could only apply pressure, but he's a two-time world champion and he doesn't really make mistakes
Alonso made an early break, establishing an eight-second advantage after 18 laps, only for Hamilton to peg his lead back to five seconds as they negotiated traffic before their first pit stops.
After the race, Hamilton said he had expected to make his stop five laps after Alonso, which might have given him enough time to make up enough ground to take the lead, and that he was surprised to be called in after only three.
But Alonso said that he had been able to eke out his fuel for two extra laps by driving carefully "in the first part of the race, and the formation lap and things like that". That ensured he held on to the lead.
Hamilton managed to hold the leader's advantage at just four seconds for a while but in the 10 laps before his final pit stop on lap 51 Alonso extended his lead to more than 10 seconds.
And with Hamilton making his final stop just a lap after Alonso, there was no way back for the 22-year-old.
Alonso and Hamilton gave McLaren their second one-two of 2007
Hamilton stopped on the next lap and closed right up on to the tail of his team-mate with 20 of the 78 laps remaining, but the two men had been told to conserve their equipment and cruise to McLaren's second one-two finish of the season.
It was Hamilton's fourth consecutive second-place finish, and the 17th victory of Alonso's illustrious career.
"It has been a fantastic weekend, no doubt, and to score this hat-trick of pole, fastest lap and win is something very special and even more here in Monaco.
"I enjoyed very much today's race, with a perfect car all through the race. It was so good to drive such a nice car for 78 laps and win at the end."
Hamilton said: "I knew we were both extremely quick, so I could only apply pressure, but he's a two-time world champion and he doesn't really make mistakes.
"I tried to attack him and wanted to win if I could, but I have to accept that I am in my rookie season and he has number one on his car and I have number two. I am the second driver and so I must accept that and respect that for the team."
Massa had kept Hamilton in sight during the first stint, but he went backwards at a dramatic pace after his first pit stop.
With all teams obliged to use both of the available types of tyre at some point during the race, Ferrari chose the unusual option of fitting the unfancied softer option in the middle stint when most teams waited until the end.
Massa dropped back at a dramatic pace, ending any thought of challenging the flying McLarens.
"McLaren showed really an incredible pace - even if I'd pushed like 150% on the limit it would have stayed the same," Massa said.
"There was nothing to do. I was just thinking about finishing third and scoring points. Five points [deficit] is nothing in the championship so let's work hard for the next race and try to be in front there."
The Brazilian was the only man not to be lapped by the McLarens and was comfortably clear of Fisichella, who drove an unobtrusively excellent race at a track where the Italian has always been strong.
Fisichella, who qualified fourth, totally eclipsed his team-mate Heikki Kovalainen, who lined up 14th on the grid and gained only one place in the race.
Massa was off the pace, but Fisichella (behind) impressed
Equally impressive was Robert Kubica, who finished fifth for BMW Sauber on his debut at Monaco, one place ahead of his more experienced team-mate Nick Heidfeld.
Alexander Wurz was seventh for Williams, climbing from 11th on the grid, with Massa's team-mate Kimi Raikkonen claiming the final point after a frustrating race in his Ferrari.
The Finn was only 15th on the grid after clouting the barriers in qualifying. He climbed up to 12th on the first lap, but spent much of his race stuck behind the struggling Honda of Jenson Button.
Ferrari had filled his car to the brim at the start, hoping to benefit from stopping as late as possible.
But any hopes of further progress after making his only pit stop on lap 49 were stymied when he was stuck behind Wurz.
Button finished 11th, a place behind team-mate Rubens Barrichello.
The Hondas were both beaten by an impressive performance from American Scott Speed, who was ninth for Toro Rosso after starting 18th.
Monaco Grand Prix result after 78 laps:
1 Fernando Alonso (Spa) McLaren-Mercedes one hour 40 minutes 29.329 seconds
2 Lewis Hamilton (GB) McLaren-Mercedes 4.095 seconds behind
3 Felipe Massa (Brz) Ferrari at 1:09.114
4 Giancarlo Fisichella (Ita) Renault one lap behind
5 Robert Kubica (Pol) BMW Sauber at one lap
6 Nick Heidfeld (Ger) BMW Sauber at one lap
7 Alexander Wurz (Aut) Williams-Toyota at one lap
8 Kimi Raikkonen (Fin) Ferrari at one lap
9 Scott Speed (USA) Toro Rosso-Ferrari at one lap
10 Rubens Barrichello (Brz) Honda at one lap
11 Jenson Button (GB) Honda at one lap
12 Nico Rosberg (Ger) Williams-Toyota at one lap
13 Heikki Kovalainen (Fin) Renault at one laps
14 David Coulthard (GB) Red Bull-Renault at two laps
15 Jarno Trulli (Ita) Toyota at two laps
16 Ralf Schumacher (Ger) Toyota at two laps
17 Takuma Sato (Jpn) Super Aguri-Honda at two laps
18 Anthony Davidson (GB) Super Aguri at two laps
R Christijan Albers (Ned) Spyker-Ferrari 70 laps completed
R Adrian Sutil (Ger) Spyker-Ferrari 53 laps completed
R Mark Webber (Aus) Red Bull-Renault 17 laps completed
R Vitantonio Liuzzi (Ita) Toro Rosso-Ferrari 1 lap completed
Fastest lap: Fernando Alonso, one minute 15.284 seconds, lap 44
Key: R = retired