Marc Marquez avenged his 2013 British Grand Prix defeat by beating Jorge Lorenzo to victory in a ferocious fight in this year's Silverstone MotoGP race.
Lorenzo - who had won three of the four Silverstone MotoGP races so far - thrust his Yamaha down the inside at Copse on the first lap to take the lead from Marquez's Honda.
The pair stayed absolutely glued together for the whole race, the gap between them always between 0.2 and 0.3 seconds.
Marquez made his first move with seven of the 20 laps left, slicing down the inside of Lorenzo at Stowe.
But he couldn't get away, and when he ran wide at the same spot two laps later, Lorenzo was back through.
Marquez had to go back on the attack, and with three laps to go he squeezed alongside at Village.
Somehow Lorenzo held on around the outside as they made light contact, but Marquez would not be denied and hurled his Honda through into The Loop.
He made a very slight break thereafter to win his 11th race from 12 rounds in 2014.
Valentino Rossi completed the podium on the second Yamaha after a superb race-long scrap with Dani Pedrosa's Honda and Andrea Dovizioso's Ducati.
Pedrosa made it up to third at half-distance and looked like pulling clear, but he could not shake off his rivals and briefly fell to fifth again before repassing Dovizioso and making a final unsuccessful bid to unseat Rossi.
Bradley Smith was looking good for sixth early on, only for a wheel problem to cost him two laps in the pits.
His Tech 3 Yamaha team-mate Pol Espargaro ended up taking the spot after a dice with Andrea Iannone and Alvaro Bautista, with the latter crashing out at the end.
Aleix Espargaro ran as high as third on the opening lap, but gradually faded back to ninth at the finish.
Scott Redding emerged as top Brit in 10th, defeating Yonny Hernandez and Cal Crutchlow's Ducatis to take the spot on his production-spec Gresini Honda.
Fellow Britons Leon Camier and Michael Laverty finished their home race just outside the points in 16th and 17th respectively.
Results - 20 laps:
Pos Rider Team/Bike Time/Gap
1. Marc Marquez Honda 40m51.835s
2. Jorge Lorenzo Yamaha +0.732s
3. Valentino Rossi Yamaha +8.519s
4. Dani Pedrosa Honda +8.694s
5. Andrea Dovizioso Ducati +9.238s
6. Pol Espargaro Tech 3 Yamaha +24.746s
7. Stefan Bradl LCR Honda +26.717s
8. Andrea Iannone Pramac Ducati +26.910s
9. Aleix Espargaro Forward Yamaha +33.455s
10. Scott Redding Gresini Honda +39.094s
11. Yonny Hernandez Pramac Ducati +40.255s
12. Cal Crutchlow Ducati +43.027s
13. Karel Abraham Cardion Honda +52.245s
14. Hiroshi Aoyama Aspar Honda +58.981s
15. Alex de Angelis Forward Yamaha +59.164s
16. Leon Camier Aspar Honda +1m05.680s
17. Michael Laverty PBM-Aprilia +1m10.939s
18. Danilo Petrucci Ioda-Aprilia +1m16.834s
19. Hector Barbera Avintia FTR-Kawasaki +1m16.904s
20. Mike di Meglio Avintia FTR-Kawasaki +1m34.939s
21. Broc Parkes PBM-Aprilia +1m38.442s
22. Bradley Smith Tech 3 Yamaha -1 lap
Alvaro Bautista Gresini Honda 18 laps