Marquez made a poor start from pole position and then became embroiled in a mid-pack traffic jam further around the opening lap, having to go wide to dodge the dicing Pol Espargaro and Jorge Lorenzo.
That left the championship leader's Honda down in 10th, but he needed just 13 of the 28 laps to scorch back through the field.
Andrea Dovizioso led initially on his Ducati before fading down the order, with Valentino Rossi then taking control for Yamaha for a spell.
Once Marquez reached second place it was only a matter of time before Rossi had to relinquish the lead, and the seven-time champion made it easier than expected when he ran wide and let the Honda slip through.
Marquez's Le Mans victory makes him the first man since Mick Doohan in the 1997 500cc championship to take five poles and five wins in a row in the top class.
Rossi fell nearly four seconds behind before Marquez's laidback final lap pace reduced that gap.
The Italian's second place was briefly under threat from Alvaro Bautista as the Gresini Honda rider surged forward in the second half of the race.
In the end Bautista's focus had to be on defending third - and his first podium finish since October 2012 - as Pol Espargaro and Dani Pedrosa closed in.
It was another poor race for Lorenzo. He climbed from an initial eighth to fifth before falling behind Pedrosa and finishing a lonely sixth.
Stefan Bradl was a podium challenger for much of the race but fell back to seventh, while Dovizioso halted his slide in eighth place, beating Aleix Espargaro and Bradley Smith to the flag.
After his impressive start to the weekend on Friday, Andrea Iannone's grand prix was short and messy.
He collided with Nicky Hayden on the first lap, causing the American to crash out, and then fell by himself while grappling with boot damage from the side-on impact with the Aspar Honda.
- Sports & Recreation
- Valentino Rossi
- Jorge Lorenzo
- Andrea Dovizioso
- Pol Espargaro