Vinales hit the head of the times about halfway through the 20-minute session, which was held 30 minutes early than planned as part of a revised Sunday timetable issued in response to the threat of heavy rain.
The Spaniard, who only qualified 11th in the wet on Saturday, knocked Pramac Ducati man Jack Miller off the top spot with a 2m02.561s, which was then marginally beaten by Marc Marquez’s 2m02.550s.
Marquez’s P1 reign proved short-lived however as Vinales responded with a 2m02.527s and then finally a 2m01.980s, enough to beat Ducati rider Andrea Dovizioso by 0.203s.
Honda rider Marquez slipped to third in the final stages, ahead of poleman Jorge Lorenzo (Ducati) and Cal Crutchlow (LCR Honda) – who gave compatriot Bradley Smith a lift back to the pits at the end of the session after the KTM man crashed.
Miller eventually slipped to sixth late on, followed by front-row starter Johann Zarco (Tech 3 Yamaha).
Valentino Rossi, 12th on the grid, could manage no better than 10th, 1,094s behind works Yamaha teammate Vinales.
Scott Redding led Aprilia’s charge in 12th place, one place ahead of top Suzuki rider Andrea Iannone, while Smith was 17th-fastest after his crash.