Jorge Lorenzo retained his place at the top of the 2011 MotoGP World Championship with second place to Casey Stoner in Catalunya.
However, the Repsol Honda rider's third win from five starts means he is now just seven points behind the reigning world champion.
Lorenzo knew he had a tough race on his hands after qualifying, but at least delayed the inevitable by beating the RCVs of Stoner and Marco Simoncelli off the line.
The Spaniard's home lead lasted just one lap before Stoner moved ahead, after which Lorenzo did his best to stay as close as possible.
Light mid-race rain threatened to shake-up the order, but wasn't strong enough to make any real difference and Lorenzo's Yamaha crossed the line 2.403sec from victory.
"I said it would be a miracle to finish first, but that the possibility of a podium was quite high," said Lorenzo. "I tried my best from the beginning. The key was the start. I knew Casey could pass me within a few laps and he did.
"When he went past I tried to stay with him for as long as possible. But then in the middle of the race it started raining and it was really hard to concentrate and not make a mistake.
"This race was very important for me to finish and keep leading the championship, so we have achieved our goal."
Lorenzo can only afford to finish second to Stoner once more before losing the title lead.
“We closed the gap we feel this weekend even if it was difficult circumstances," claimed team manager Wilco Zeelenberg. "We said at the beginning it's important to finish every race on the podium. We need to solve some more issues and make some more steps but we are definitely heading in the right direction."
Lorenzo's team-mate Ben Spies took his first podium of the year with third place.
The British Grand Prix at Silverstone takes place this weekend.