Dovizioso passed compatriot Valentino Rossi, who had led from the start but ended up third behind Yamaha team mate Maverick Vinales, for the lead with three laps remaining.
The race was nine-times world champion Rossi's 300th in the top category of grand prix motorcycling.
Britain's Cal Crutchlow finished fourth on the non-factory LCR Honda bike.
Marquez had been running in third place when his engine went in a cloud of smoke on lap 14.
The next race, the 13th on the 18-round calendar, is at Misano in Italy on Sept. 10.
(Reporting by Alan Baldwin in Spa-Francorchamps, editing by Ed Osmond)
Share
