Despite starting from fifth on the grid, Marquez stormed past Jorge Lorenzo, Valentino Rossi and Maverick Vinales to win from Honda teammate Dani Pedrosa with Lorenzo in third.
Dovizioso started the day level with Marquez in the championship standings, but finished down in seventh to deal a severe blow to his title chances with just four races remaining.
Marquez showed his class by moving smoothly through the grid, eventually overtaking Lorenzo with eight laps to go for his third MotoGP win in Aragon and fourth overall after winning in Moto2 back in 2011.
“It was a really difficult race,” said Marquez.
“From the beginning I didn’t have the feelings like in the warm-up where it was a little bit smoother.
“I tried to get back the feeling but even in the last part of the race the feeling was not the best one.
“Anyway I was able to open up a small advantage. It tested me more than the other years here but in front of the fans, (it) was amazing!”
Pedrosa completed a perfect day for Honda as he stormed through second half of the race after a slow start to blow past Rossi, Vinales and Lorenzo in the latter stages.
But he left his challenge to late to catch his teammate out front.
“Unfortunately I did too many laps behind Maverick and I lose a little bit of the gap at the beginning,” said Pedrosa.
“Later we both improved the pace and when I got passed him I could really catch the front group, but Marc was in the lead already and could play with the gap.”
Rossi fought manfully on his return just three weeks after a double leg fracture.
The wounded nine-time champion battled for the lead early in the race but understandably faded to finish back in fifth.
Rossi, though, slips 56 points behind Marquez as his hopes of 10th world title begin to fade.
And Pedrosa wasn’t happy with the Italian’s attempts to fend him off.
“Unfortunately Valentino did a strange move to me in the main straight,” he added.
“He closed the door completely at 300km per hour so too tight to not give room, not so nice but fortunately I could do and pass him and keep going forward to the podium.”
Looking for his first win since swapping Yamaha for Ducati at the start of the season Lorenzo led for most of the race after beating pole-sitter Vinales to the first corner.
However, he couldn’t match the pace of the Hondas in the final 10 laps as the three-time world champion had to settle for just his second podium of the season.
“It is a pity to lose the victory for not so much becuase I think in the last 10 laps we needed more grip on the rear,” said Lorenzo.
“I couldn’t follow them but I have to be happy with this third position.”
Fourth-place sees Vinales slip to 28 points off Marquez in third in the championship standings.
After a three-week break rivalries will be renewed at the Japanese Grand Prix on October 15.
Download our app and read this and other great stories on the move. Available for Android and iOS.