Ducati rider Andrea Dovizioso set the pace in the second MotoGP free practice session at Brno, run in dry conditions following a wet FP1.
With the times gradually improving as conditions got better, the factory Hondas of Dani Pedrosa and Marc Marquez soon took over the first two positions.
Hector Barbera (Avintia Ducati) then edged them out with just three minutes to go, before Danilo Petrucci (Pramac Ducati) moved to the front.
However, Dovizioso lowered the benchmark by more than four tenths in the final minute, the Italian's 1:56.332 fast enough to remain at the top by the end.
Jonas Folger slotted into second in the final moments on his Tech 3 Yamaha, leaving Petrucci in third ahead of Folger's team-mate, FP1 pacesetter Johann Zarco.
Barbera was fifth, ahead of Scott Redding's Pramac Ducati, while the late improvements shuffled Pedrosa down to seventh.
Marquez, who saved a big moment late on, slipped even further down the order to 10th at the flag, with Cal Crutchlow and Aleix Espargaro getting between the Honda team-mates.
The factory Yamahas of Maverick Vinales and Valentino Rossi were 11th and 14th, while Jorge Lorenzo, who tried a new fairing introduced by Ducati, was 15th.
The only rider to crash was Sam Lowes, whose Aprilia fell at Turn 10.