Australia's Casey Stoner pulled away from MotoGP championship leader Jorge Lorenzo to win the Catalunya Grand Prix, notching up his third win of the season.
The Honda rider hit the front at the end of the first lap and steadily extended his lead, the only apparent threat to his position coming from the gathering rain clouds which came close to forcing the riders to change to their wet-weather bikes.
Spaniard Lorenzo came in second ahead of Yamaha team mate Ben Spies of the United States.
Italian Marco Simoncelli, who had started on pole, was sixth behind compatriots Andrea Dovizioso, who was fourth, while Valentino Rossi was fifth.
World champion Lorenzo tops the riders' standings with 98 points from five races, seven ahead of Stoner who also won in Qatar and France.
Dovizioso climbed up to third with 63 points, two ahead of Dani Pedrosa who missed the race with a broken collarbone.