Vinales led home local hero Cal Crutchlow by 3.480 seconds to become the fourth new winner in five grands prix and end a Suzuki drought that goes back to Chris Vermeulen's victory in the 2007 French GP at a wet Le Mans.
The race was red-flagged on the first lap, due to an accident involving Pol Espargaro and Loris Baz at Maggotts.
With their bikes, the pair bounced across the infield and were fortunate not to be hit when they re-entered the track surface.
Both were reported as being conscious, and taken to the medical centre for further checks.
Vinales took the lead into Maggotts on that first start, and after the restart for the shortened 19-lap race he had to wait until Abbey on the opening lap to get past polesitter Crutchlow.
British GP standings:
1. Maverick Vinales (Spa) Suzuki 39 minutes 3.559 seconds
2. Cal Crutchlow (GB) Honda +3.480
3. Valentino Rossi (Ita) Yamaha +4.063
4. Marc Marquez (Spa) Honda +5.992
5. Dani Pedrosa (Spa) Honda +6.381
1. Marc Marquez (Spa) Honda 210 points
2. Valentino Rossi (Ita) Yamaha 160
3. Jorge Lorenzo (Spa) Yamaha 146
4. Maverick Vinales (Spa) Suzuki 125
5. Dani Pedrosa (Spa) Honda 120