Andrea Dovizioso led from pole to claim victory at the Czech Republic Grand Prix as Marc Márquez's milestone weekend at the MotoGP did not go to plan.
Dovizioso had pipped Márquez, riding his 100th race in the competition, to pole on Saturday and again got away from the defending champion and season leader 24 hours later.
With Jorge Lorenzo providing a late challenge, Márquez scarcely threatened and was made to settle for third place but at least extended his championship lead to 49 points heading into the second half of the season.
Dovizioso and Valentino Rossi, leading at the first turn, traded places several times in the early laps, with Márquez and Lorenzo similarly tussling in third and fourth.
Rossi had suggested after qualifying that his bike would "suffer" after a few laps, but a slow race pace tempted him to make another move and hit the front with 14 laps remaining.
The Italian's words bore true, though, and both Dovizioso and Márquez soon burned past the frontrunner, who then slipped further down the grid.
Not until the final four laps did the lead riders let rip in a sprint for the finish and a pair of stunning Lorenzo manoeuvres muscled Márquez out of the picture, but that battle allowed Dovizioso to get free.
Although Lorenzo hared after his Ducati team-mate in a speedy last lap, the gap was too big to deny Dovizioso his first race win since the opening weekend of the season.
Dovizioso leapfrogged Maverick Viñales into third in the standings, with Lorenzo up to fifth.
Movistar Yamaha rider Viñales had qualified in a disappointing 12th and capped a woeful weekend as he came flying off the track with Bradley Smith on the opening lap.