Spaniard Maverick Vinales roared to his first MotoGP victory for Suzuki at Silverstone with Britain's Cal Crutchlow second in his home race after starting on pole.
Italian great Valentino Rossi, on a Yamaha, completed the podium.
Championship leader Marc Marquez, riding for the works Honda team, finished fourth while Yamaha's reigning champion Jorge Lorenzo was eighth.
Marquez now leads Rossi in the championship by 50 points after 12 of 18 races.
Vinales was the seventh different winner so far this season, his success following Crutchlow's first win for the non-works LCR Honda team in the Czech Republic last month.
The victory was also Suzuki's first in the top category since 2007, when Australian Chris Vermeulen won in the wet at the Le Mans circuit in France.
There was drama on the opening lap when Frenchman Loris Baz and Spaniard Pol Espargaro collided at Maggotts, with the two riders taken to the medical centre and the race halted before a re-start with Vinales quickly taking the lead.