Marc Marquez defied the pain of a dislocated shoulder to extend his lead in the MotoGP world championship to 30 points at Silverstone – Ulster's Michael Laverty finished 19th.
Repsol Honda rider Marquez had crashed during the morning warm-up at the Northamptonshire circuit but was able to finish second in the race behind defending champion Jorge Lorenzo on the factory Yamaha.
Lorenzo had grabbed the lead going into the first turn when he forced his way past Marquez who had started from pole position.
Lorenzo led the race until lap 18 of 20 when Marquez battled past. Lorenzo grabbed the lead back a lap later and despite being passed on the final lap he was still able to overtake his title rival a final time in the last corner.
Marquez said: "I am so happy because after my crash in the warm-up I thought my weekend was finished. The doctors did a very good job, in the beginning the pain was not so bad because I had an injection and took some pills but at the end of the race I was quite tired."
Third place went to Marquez's team-mate Dani Pedrosa, who lies second in the points table, 30 points behind Marquez and nine in front of Lorenzo.
British rider Cal Crutchlow, who had crashed twice in Saturday practice before qualifying third-fastest, finished a disappointing seventh in the race.
Crutchlow also crashed during Sunday morning warm-up and he was then involved in a collision with Marquez in the crash which saw the latter injure his left shoulder. Crutchlow, from Coventry but now living on the Isle of Man, remains fifth in the standings.
Result: 1 Jorge Lorenzo (Spa) Yamaha 40mins 52.515secs, 2 Marc Marquez (Spa) Honda 40:52.596, 3 Dani Pedrosa (Spa) Honda 40:54.066, 4 Valentino Rossi (Ita) Yamaha 41:05.748, 5 Alvaro Bautista (Spa) Honda 41:05.813, 6 Stefan Bradl (Ger) Honda 41:12.742, 7 Cal Crutchlow (GB) Yamaha 41:18.814, 8 Nicky Hayden (USA) Ducati 41:28.508, 9 Bradley Smith (GB) Yamaha 41:28.634, 10 Aleix Espargaro (Spa) ART 41:45.711, 11 Andrea Iannone (Ita) Ducati 41:51.573, 12 Michele Pirro (Ita) FTR-Honda 41:53.225, 13 Hector Barbera (Spa) FTR 41:54.205, 14 Colin Edwards (USA) FTR-Kawasaki 41:54.358.