A last-gasp lap on slicks on a rapidly-drying track left Dovizioso over eight tenths clear of his nearest rival, Petronas Yamaha’s Franco Morbidelli.
Torrential rain in the morning meant the session was postponed by more than an hour, and there was a further delay after the Moto3 practice as track workers got to clearing standing water from several corners of the circuit.
As a result, the MotoGP session was reduced by 10 minutes from the original 45-minute runtime.
Championship leader Marc Marquez, who needs to outscore Dovizioso by just two points this weekend to become 2019 champion, took an initial lead of nearly three seconds with his first flying lap as FP3 kicked off.
But the other riders swiftly closed the gap to the Honda man, and with 20 minutes left on the clock Ducati’s Danilo Petrucci jumped ahead on a 1m41.750s.
Yamaha’s Maverick Vinales found an extra seven tenths shortly thereafter, and with the sun emerging from behind the clouds a few minutes later the laptimes began to drop at a faster rate.
The likes of Alex Rins (Suzuki), Miguel Oliveira (Tech 3 KTM) and Franco Morbidelli (Petronas Yamaha) took turns leading the proceedings, before Marquez went over a second clear with a 1m38.864s.
Marquez then aborted what looked an even faster lap next time by, pulling into the pits to end his session three minutes early.
By then, however, several riders had equipped slicks, and the track got dry enough for Morbidelli to retake the top spot just before the chequered flag flew.
He improved with his next attempt, but Dovizioso was quicker yet, securing FP3 honours with a final 1m36.250s effort that was still nearly six seconds off Petronas Yamaha rookie Fabio Quartararo’s best time from Friday.
Morbidelli and Rins made up an all-slicks top three. Marquez’s time wound up good enough for fourth place, while Vinales was just 0.085s behind, also on wet tyres.
Karel Abraham used slicks to launch his Avintia-run Ducati into sixth place, ahead of Cal Crutchlow (LCR Honda), Joan Mir (Suzuki), Quartararo and Oliveira.
Valentino Rossi was 11th in the other works Yamaha, having just run out of time to do a representative lap on slicks late on.
The weather conditions have meant the combined practice classification is unchanged from Friday, meaning Petrucci – who finished FP3 in 19th – and Crutchlow are among those who will have to fight their way through Q1 later on Saturday.