Marco Bezzecchi mastered the drying conditions at the Red Bull Ring to claim a first Moto3 pole, while the returning Jorge Martin missed out in second by just 0.078 seconds.
A heavy downpour prior to qualifying left the circuit wet for the start of the session, though dry patches quickly began to appear.
Tatsuki Suzuki set the early pace at a 1:48.631s, though the SIC58 Honda rider was soon demoted by Avintia's Vicente Perez.
Perez went on a string of session-best laps beginning with a 1:46.829s and culminating in a 1:45.474s, putting the young Spaniard 0.273s clear of the field.
His time at the top only last a few moments, as Aron Canet usurped him with a 1:45.028s. Thus began a run of quick laps for the EG 0,0 Honda man, Canet immediately deposing championship leader and FP3 pacesetter Bezzecchi each tour.
With just under 20 minutes remaining, Canet's 1:43.848s put him just under three tenths clear of Bezzecchi, who crashed at Turn 3 moments later.
Canet cemented his place at the top of the timesheets with a 1:43.646s, though this soon came under threat as the majority of the field switched to slick tyres as a near-full dry line had materialised.
Moto2-bound Philipp Oettl was the first big mover on slick tyres, the German leaping up to top spot with a 1:42.615s, though this was sensationally eclipsed by Martin by two tenths.
Oettl reclaimed provisional pole with a 1:41.504s, though the ever-improving conditions saw laptimes tumble dramatically over the closing moments.
At the end of the flurry of fast final laps, Bezzecchi – who will join Oettl at Tech3 in Moto2 next year – emerged as the victor with a 1:38.617s.
Martin, just a week after breaking his left wrist at Brno, slotted into second ahead of Albert Arenas, while Canet headed Tony Arbolino and Gabriel Rodrigo, who crashed early on, to complete row two.
Marcos Ramirez edged ahead of Oettl to take seventh, with Enea Bastianini and Adam Norrodin rounding out the top 10.
A brace of crashes left the wet FP2 pacesetter John McPhee without a laptime and at the back of the grid, while a late tumble for Perez saw him slip to just one spot ahead in 29th.