In a fairly quiet session, Marquez set his time of 1m48.830s roughly halfway through the 45 minutes.
Already on top, it extended his advantage to 0.743 seconds over Yamaha's Jorge Lorenzo, and that margin stood into the closing stages.
But it was then halved by Suzuki's Maverick Vinales and Ducati's Andrea Dovizioso - who set identical lap times - and then by Rossi after the chequered flag.
Having moved up from seventh to fourth on his previous lap, Rossi's 1m49.016s was ultimately 0.186s slower than Marquez, while Vinales and Dovizioso were 0.348s off the pace.
Lorenzo did not use fresh rubber or improve late in the session and finished fifth, ahead of Ducati's Andrea Iannone.
After fracturing a vertebra in his upper back at Misano a fortnight ago, Iannone has been cleared to ride but he reported feeling significant pain.
A decision on whether he continues is expected to be made before second practice, and Ducati has test rider Michele Pirro on standby.
Danilo Petrucci was seventh and the top satellite rider for Pramac Ducati, ahead of Aleix Espargaro - who regrouped from an off at Turn 12 on his Suzuki - Tech3 Yamaha's Pol Espargaro and LCR Honda's Cal Crutchlow.
Misano winner Dani Pedrosa had to settle for 11th, 1.163s slower than his team-mate Marquez.
Tito Rabat fell with two minutes to go at Turn 2, and his new Marc VDS Honda team-mate Nicky Hayden was 20th, filling in for the injured Jack Miller.
Yonny Hernandez also crashed at Turn 2 but at the start of the session while Loris Baz, who is returning from injuries sustained at Silverstone, finished at the foot of the times.