Australian world champion Casey Stoner has won the Portuguese MotoGP for his second successive victory this season, giving him a one point lead in the title race.
The 26-year-old Honda rider - whose maiden win here means he has won at every single Grand Prix circuit - beat Spain's 2010 world champion Jorge Lorenzo on a Yamaha.
Stoner's team-mate Dani Pedrosa became only the seventh rider to celebrate 100 podium finishes as he came third.
Stoner - who has been affected by arm pump where the nerves get trapped and numb the hand - said it had been a tough battle.
"There was a bit of pressure throughout the race," said Stoner, who last Sunday won his first Spanish MotoGP.
"I wasn't feeling good or comfortable and I had a bit of arm pump.
"I was lucky to hold on and win."
Lorenzo, winner here twice including his first ever win at this level, said he had never felt as if he was going to win.
"To be honest I only ever expected to be at best second," said Lorenzo, who had seen his run of four successive poles ended here on Saturday when he timed fourth fastest.
"We had a lot of problems in practice and we were losing time every lap in the straight. Stoner was very strong."
Pedrosa too conceded that his team-mate had been too good.
"It was really tough," he said.
"Casey put up a really strong pace and I had to adapt my riding style during the race and I wasn't able to keep up with the pace he was setting up front."
Pedrosa got the better start but was quickly passed by both Stoner and Lorenzo while Cal Crutchlow lost two spots and Valentino Rossi, who had qualified in his highest position on Saturday, gained two places from ninth to seventh.
Ben Spies once again disappointed as he lost places after qualifying fifth fastest on his Yamaha but the laid back American dropped to ninth by quarter distance.
The pressure will only increase on Spies as he has been given a target of winning two races this term and he eventually finished eighth just behind Rossi, who recorded his best finish of the season on his Ducati.
Up ahead though Stoner, Lorenzo and Pedrosa opened up a sizeable gap over the remainder of the field as they fought out the podium places with 20 laps remaining.
Behind them some six seconds back Andrea Dovizioso and Crutchlow were having their own duel for fourth and fifth while Rossi consolidated his seventh spot.
With 10 laps to go Stoner and Lorenzo looked to have the race to themselves as Pedrosa dropped off slightly and further behind the field was whittled down with just 16 remaining of the original 20-man field.
Stoner repelled everything that Lorenzo tried to throw at him and going into the final lap held a comfortable lead of just over a second and never looked like relinquishing that advantage.
The Australian overtook Lorenzo on the points table which, after three races, now reads Stoner 66, Lorenzo 65, Pedrosa 52 and Crutchlow 37.