He held off the challenge of Aleix Espargaro to finish in second place.
Rins, who started 23rd on the grid, came fourth while Ducati's Francesco Bagnaia, who exited Saturday's qualifying early after hitting a wet patch, finished eighth after storming back from last place.
The Factory Ducati star set the 12th fastest time in warm-up but will need to start 25th and last in this afternoon's race.