The Spaniard, 23, started on pole but slipped to fifth place after an early technical issue.
He recovered and overtook Valentino Rossi with 12 laps to go, securing his fourth win of the season and taking his championship total to 248 points.
Rossi struggled to close down Marquez's lead and fell behind defending champion Jorge Lorenzo to finish in third.
Victory - the 28th of his career in the top category - gives Marquez a clear lead over second-placed Rossi, with four races remaining.
Earlier, Brad Binder became the first South African motorcycle grand prix world champion since 1980 as he won the Moto3 title.
1. Marc Marquez (Spa) Honda - 41 minutes 57.678 seconds
2.  Jorge Lorenzo (Spa) Yamaha - 42:00.418
3.  Valentino Rossi (Ita) Yamaha - 42:03.661
4.  Maverick Vinales (Spa) Suzuki  - 42:05.916
5.  Cal Crutchlow (GB) Honda - 42:10.899
6.  Dani Pedrosa (Spa) Honda - 42:14.750
7.  Aleix Espargaro (Spa) Suzuki - 42:16.200
8.  Pol Espargaro (Spa) Yamaha - 42:17.110
9.  Alvaro Bautista (Spa) Aprilia - 42:20.749
10. Stefan Bradl (Ger) Aprilia - 42:25.576
1. Marc Marquez (Spa) Honda - 248 points
2. Valentino Rossi (Ita) Yamaha - 196
3. Jorge Lorenzo (Spa) Yamaha - 182
4. Dani Pedrosa (Spa) Honda - 155
5. Maverick Vinales (Spa) Suzuki - 149
6. Cal Crutchlow (GB) Honda - 105
7. Andrea Dovizioso (Ita) Ducati - 104
8. Andrea Iannone (Ita) Ducati - 96
8. Pol Espargaro (Spa) Yamaha - 96
10. Hector Barbera (Spa) Ducati - 84
MotoGP championship leader Marc Marquez moved 52 points clear in the title race with victory at the Aragon Grand Prix.