Andrea Dovizioso took the lead of the MotoGP world championship with victory at Silverstone, while title rival Marc Marquez retired with an engine failure.
Dovizioso worked his way through from sixth on the grid to pass race-long leader Valentino Rossi at Stowe on lap 18 of 20, and then held off the other factory Yamaha of Maverick Vinales to win by 0.114 seconds.
Vinales picked Rossi off on the same lap as Dovizioso, moving through at Brooklands on his team-mate.
Rossi had previously led from the start after outdragging polesitter Marquez into Copse off the line.
Marquez was running third behind Rossi and Dovizioso when smoke poured from the back of his Honda on the Hangar Straight during lap 14, costing him the championship lead he held coming into this weekend.
Behind the top three, Cal Crutchlow came home on their tails to claim fourth on his LCR Honda, having sat on back of the lead pack for most of the race after being shuffled back in the early laps from third place.
That group were comfortably clear of the rest of the field, which was led home by the second Ducati of Jorge Lorenzo.
Lorenzo held the best of the rest position for the majority of the race, although he did have to battle back past Johann Zarco when the Tech3 Yamaha rider briefly got ahead after dispatching Dani Pedrosa for sixth place.
Pedrosa ended up a distant seventh, with Scott Redding, Alex Rins and Alvaro Bautista completing the top 10.
Pol Espargaro was the next man home in 11th, but he then bizarrely crashed at Copse after the chequered flag, suffering a high-side despite travelling at reduced speed and being thrown from the KTM.
The other major incident of the race occurred just outside the top 10, when Andrea Iannone fell off his Suzuki at Abbey and collected the Pramac Ducati of Danilo Petrucci.