Brawn's Rubens Barrichello beat McLaren's Lewis Hamilton to win the European Grand Prix after the world champion suffered a pit-lane mix-up.
Hamilton, who led from the start, was engaged in a tight battle with Barrichello when he was delayed at his final pit stop because his tyres were not ready.
But the mix-up did not cost him the race - an analysis of lap times suggests Barrichello would have beaten him anyway.
Jenson Button was seventh and team-mate Barrichello is now his closest title rival.
The Brazilian's victory puts him 18 points adrift of the Englishman with 60 remaining in the final six races of the season.
Red Bull's Mark Webber slipped to third in the championship 20.5 points behind Button, after finishing only ninth. His team-mate Sebastian Vettel, lying fourth, failed to finish following an engine failure.
Kimi Raikkonen finished third for Ferrari, ahead of Hamilton's team-mate Heikki Kovalainen, with Williams's Nico Rosberg fifth from Renault's Fernando Alonso, Button and the improved BMW Sauber of Robert Kubica.
Barrichello dedicated his victory to fellow Brazilian Felipe Massa, who is recovering at home after suffering a fractured skull in a crash at the Hungarian Grand Prix.
"I had two wishes," Barrichello said, "first that he would be the same guy, and he is, and second that he will be the same driver, and I think he will be better.
"We knew if everything went to place we could win the race. You don't forget how to do it, even though it's five years.
"They were telling me push, push, push. You want to do it for yourself, your team, your family, your country. So there was a lot going through my mind."
Barrichello was third on the grid behind Hamilton and Kovalainen, but was fastest of all on fuel-corrected qualifying times.
He held on to third place off the start and settled in behind the McLarens for the duration of the first stint.
He stayed within touching distance of Kovalainen and leapfrogged the Finn by using his larger fuel load to stop three laps later, during which time he set a succession of fast lap times.
Once the field had settled down after the stops, Barrichello was slightly more than three seconds adrift of Hamilton and the gap see-sawed between three and four seconds until Hamilton's final pit stop on lap 37.
The McLaren pit wall were late in asking their mechanics to bring Hamilton's tyres into the pit lane, and that delayed the world champion by about five seconds. He was just over six seconds clear by the time the two cars emerged from the pits - meaning he had made up four seconds on Hamilton on the track, slightly more than his deficit to the McLaren when it made its stop.
And Brawn brought Barichello in four laps earlier than necessary as soon as it became apparent he had enough of an advantage to make a stop and still retain the lead.
McLaren team boss Martin Whitmarsh said: "It was clear we weren't as quick in the race as we should have been.
"Rubens was quite a bit quicker than us and we were tying to get an extra lap. That made our call late and we didn't get the tyres out in time.
"We were monitoring the fuel, he was meant to come in on lap 37 and were trying to get him to come in on lap 38, but we didn't have quite enough.
"To have a car arrive and not have the tyres there is an operational error. But had the tyres been ready it wouldn't have made a difference. It only cost us a couple of seconds."
Hamilton said: "We win and we lose together. We had a tremendous effort to get us here so we cannot at all take second place for granted or be disappointed we didn't get the win because we've had extraordinary pace and it was a tremendous effort from everyone.
"These things happen. I've had so many races for this team and this hardly ever happens. It's only the second time, I think. We need to catch these guys up because I believe they are a little but quicker than us but we're pushing all the time."
Button qualified fifth - two places behind his team-mate - on a weekend when the Brawns returned to form. But he slipped down to ninth after a messy first lap.
The Englishman spent the middle part of the race trying to pass Webber, a feat he finally managed during the second and final pit stop period. Webber lost eighth place to the improved BMW Sauber of Robert Kubica after getting stuck behind slower cars on the lap before his stop and then suffering a slight delay in the pits.
Once clear of the traffic he had got himself stuck behind, Button set a series of fastest laps in the final stages of the race as he attempted to chase down Alonso.
He will nevertheless be encouraged by his pace here - but well aware that he does not know whether Brawn have solved the problems that prevented them from being competitive in the cooler conditions of the preceding three races.
Button will now be anxious to see whether the changes Brawn are planning to improve their performance in cooler conditions than the stifling heat of Valencia work at the Belgian Grand Prix at Spa-Francorchamps in the Ardennes mountains next weekend.