Andrea Dovizioso came out on top at the San Marino Grand Prix as pole sitter Jorge Lorenzo dramatically crashed with two laps remaining.
Ducati looked set for a one-two with Dovizioso leading Lorenzo, who qualified first with a lap record on Saturday, towards the line, but the Spaniard caved under pressure from future Repsol Honda team-mate Marc Márquez and slid into the gravel at Turn 8.
Cal Crutchlow snatched the final step on the podium as a result of the error from the three-time MotoGP champion, who won the previous race in Austria and was on pole for the cancelled British Grand Prix.
Victory sent Dovizioso above Lorenzo and Valentino Rossi, who endured a disappointing return to his home track in Misano, into second in the riders' standings, but Márquez's advantage at the summit grew by eight points to 67.
The front three were close together until Márquez went down the inside of Lorenzo at Turn 14 with 13 laps to go, and the two Spaniards became preoccupied with their battle.
Dovizioso took full advantage to open up a lead of over two seconds, but his team-mate regained second position and started eating into the gap.
However, Lorenzo was unable to keep the pressure on and handed Márquez's hopes of securing a fifth MotoGP title and third in succession a huge boost.
Jack Miller hoped to be in the podium battle after securing just his second front-row start but he crashed out from fourth just three laps in.
Rossi missed last year's race with a leg injury and his return was not one to remember. He could only guide his Movistar Yamaha to seventh, two positions behind team-mate Maverick Viñales.
San Marino Grand Prix race results
1. Andrea Dovizioso (Ducati)
2. Marc Márquez (Repsol Honda) +2.822 seconds
3. Cal Crutchlow (LCR Honda) +7.269s
4. Alex Rins (Suzuki Ecstar) +14.687s
5. Maverick Viñales (Movistar Yamaha) +16.016s
6. Dani Pedrosa (Repsol Honda) +17.408s
7. Valentino Rossi (Movistar Yamaha) +19.086s
8. Andrea Iannone (Suzuki Ecstar) +21.804s
9. Álvaro Bautista (Angel Nieto) +23.919s
10. Johann Zarco (Monster Yamaha Tech 3) +27.559s
11. Danilo Petrucci (Pramac Racing) +30.698s
12. Franco Morbidelli (Marc VDS) +32.941s
13. Takaaki Nakagami (LCR Honda) +33.461s
14. Aleix Espargaro (Aprilia) +35.686s
15. Michele Pirro (Ducati) +35.812s
MotoGP world championship standings
1. Marc Márquez (Repsol Honda) 221
2. Andrea Dovizioso (Ducati) 154
3. Valentino Rossi (Movistar Yamaha) 151
4. Jorge Lorenzo (Ducati) 130
5. Maverick Viñales (Movistar Yamaha) 124
1. Repsol Honda 297
2. Ducati 284
3. Movistar Yamaha 275
4. Suzuki Ecstar 171
5. Pramac Racing 171