Pole sitter Maverick Vinales was slow off the blocks as Ducati’s Jorge Lorenzo surged into lead ahead of Valentino Rossi and Dovizioso.
Marquez nestled himself into fourth place, keeping the leading trio in his sight.
Marquez’s first attempt to overtake Dovizioso and Rossi failed but he recovered and successfully overtook the two a few laps later.
Marquez’s blistering pace meant it was only a matter of time before the defending champion overtook Lorenzo.
Lorenzo’s resistance was broken on lap 13 of the 23-lap race as Marquez overtook the Ducati rider and remained unchallenged till the end. Lorenzo finished third to score his second podium finish of the season.
The dominance of the factory Honda bikes was best exemplified by Pedrosa’s surge in the second half of the race as he overtook Vinales, Dovizioso, Rossi and Lorenzo to claim second.
With this win, Marquez, who was tied on points in the title race with Dovizioso, has opened a 16-point gap ahead of the Italian.