Zulfahmi Khairuddin sealed his first front-row start in second, with Le Mans winner Louis Rossi in third.
Vinales (Avintia FTR-Honda) was already leading the timesheets with 10 minutes to go when he shaved nine tenths of a second off his best, dropping down to a 1m52.160s - at the time putting him more than six tenths of a second clear of the field.
Both Khairuddin and Rossi were able to close that deficit slightly, but neither looked truly capable of deposing Vinales.
Championship leader Sandro Cortese (Ajo KTM) bounced back from a hand injury suffered in a fall in FP3 to qualify fourth, ahead of Monlau Honda's Miguel Oliveira, who fell with one minute of the session remaining.
The Spaniard had been part of a four-bike draft but ran into the back of Alexis Masbou and fell, taking out Brad Binder (RW Kalex-KTM) in the process.
Neither he nor Masbou were able to improve their times as a result, but they had done enough to seal fifth and seventh - Luis Salom (RW Kalex-KTM) separating them.
Hector Faubel (Aspar Kalex-KTM), Niccolo Antonelli (Gresini Honda) and Efren Vazquez (Laglisse Honda) rounded out the top 10.