Marquez and Dovizioso are one and two in the championship
World champion Marc Marquez claimed his first win in four MotoGP races after a tremendous battle with Andrea Dovizioso in Aragon.
The pair were at the front for almost the entire race after pole-sitter Jorge Lorenzo crashed out on the opening turn.
Suzuki's Andrea Iannone and Alex Rins tried to close the gap late on.
But Honda rider Marquez took control in the last three laps and held on to win his home grand prix.
The 25-year-old's last win came in Germany in July - five rounds ago, including the abandoned Silverstone meeting.
Marquez who now leads Dovizioso by 72 points in the standings with five races to go, opted to use soft tyres in the searing heat of Spain while many of his rivals used harder tyres.
"I took a risk with the tyres," said the Spaniard. "I was able to follow Andrea and it was a great fight at the end."
The start of the race saw Lorenzo go wide and he crashed out for the second race in a row.
In a relatively slow-paced race, Marquez and Dovizioso fought it out and as the lead changed hands, Iannone and Rins were poised to seize on any mistakes.
However, they were not given enough of a chance and Marquez went past his rival again with five laps to go to claim his 41st MotoGP career win.
Andrea Dovizioso battles with Marc Marquez
1. Marc Marquez (Spa/Honda) 41mins 55.949secs
2. Andrea Dovizioso (Ita/Ducati) +0.648
3. Andrea Iannone (Ita/Suzuki) +1.259
4. Alex Rins (Spa/Suzuki) +2.638
5. Dani Pedrosa (Spa/Honda) +5.274
6. Aleix Espargaro (Spa/Aprilia) +9.396
7. Danilo Petrucci (Ita/Ducati Pramac) +14.285
8. Valentino Rossi (Ita/Yamaha) +15.199
9. Jack Miller (Aus/Ducati Pramac) +16.375
10. Maverick Vinales (Spa/Yamaha) +22.457
1. Marc Marquez (Spa/Honda) 246 points
2. Andrea Dovizioso (Ita/Ducati) 174
3. Valentino Rossi (Ita/Yamaha) 159
4. Jorge Lorenzo (Spa/Ducati) 130
5. Maverick Vinales (Spa/Yamaha) 130
6. Cal Crutchlow (Gbr/LCR Honda) 119
7. Danilo Petrucci (Ita/Ducati Pramac) 119
8. Johann Zarco (Fra/Yamaha Tech3) 112
9. Andrea Iannone (Ita/Suzuki) 108
10. Alex Rins (Spa/Suzuki) 92
-- Courtesy of BBC Sport