Team mate and compatriot Dani Pedrosa was second with Yamaha's world champion Jorge Lorenzo making it three Spaniards on the podium with third place after a three-way battle for the lead.
Italian Valentino Rossi, the last rider to win four successive MotoGP races in 2008, was fourth for Yamaha.
Marquez now has 213 points to Pedrosa's 187 with Lorenzo on 169.
Tech3 Yamaha rider Cal Crutchlow, who started on pole position for the second time this season, again failed in his bid to become the first British winner in the top category since Barry Sheene in 1981.
Crutchlow dropped back to fourth at the start and then crashed on lap eight before returning at the back.
(Reporting by Alan Baldwin in Spa-Francorchamps, editing by Pritha Sarkar)
