“It was a strange race,” said Dovizioso, who made a quick getaway from the front row while Yamaha’s pole-sitter Maverick Vinales was swallowed up by the field and ended up seventh.
“It was difficult to manage the tyres.
“I saw Marc in the last lap struggling a lot with the rear tyre so it was good for me to understand that and I pushed really hard in the last lap. But Marc never gives up and is always there.
“I was able to pass because I put him really on the limit.”
The lap times showed how much Dovizioso was managing the tyres, with French rookie Fabio Quartararo starting in the pit lane but soon lapping more than a second faster than the leader as he sought to catch the rest of the field.
Dovizioso, Marquez and Rins traded the lead repeatedly, with the top five running nose-to-tail.
Marquez hit the front again on the penultimate lap but Dovizioso was far from done, forging ahead at the start of the last lap.
The Spaniard made one final attempt, but Dovizioso had the line and held on to win.
“It was exactly the same as last year,” said Marquez.
“I tried to push but when you overtake on the dirty place you just go wide and then it was so difficult to keep the line. Anyway, I tried to be there.
“This weekend we were struggling with the front tyre. That’s one race, that normally we struggle at, less from the calendar.”
Crutchlow thanked his surgeons and doctors for helping him back after breaking his ankle last October in what could have been a career-ending injury.
He also revealed he was in some pain in a different area.
“Not to be rude, I feel like I’ve got a dead bum,” he said.
“Somebody hit me with a footpeg in the left butt cheek and I can’t feel it at the moment. My ankle’s good though.”
Australia’s Jack Miller had started fourth on the grid, but endured technical problems.