Defending champion Marc Marquez won the Aragon MotoGP to take a 16-point lead in the world championship standings.
Valentino Rossi, making a remarkable comeback barely three weeks after suffering a broken leg, finished fifth on his Yamaha after lying second earlier on.
Teammate Maverick Vinales, who started on pole, was fourth and Aleix Espargaro of Aprilia sixth.
Briton Cal Crutchlow was in contention for a top-six place but crashed and had to retire on lap 17.
Spaniard Marquez started only fifth but improved on a slow start and steadily made up ground.
By winning with four rounds remaining he was able to take a clear lead in the standings as Andrea Dovizioso, previously the joint leader, managed only seventh place.
Marquez, who also won in San Marino two weeks ago, now has 224 points, Dovizioso 208 and Vinales 196.
Motorsport: Marquez stretches lead as Rossi finishes fifth
AdvertisementAdvertise with NZME.