The young Spaniard was joined on the podium by home-town favourite Cal Crutchlow of LCR Honda and seven-time World Champion Valentino Rossi.
Vinales showcased his speed from the outset, as he shot past pole-sitter Crutchlow and into the lead on the first turn - but this was short lived, as the race was red flagged and forced to stop due to a crash between Loris Baz (Avintia) and Pol Espargaro (Monster Yamaha).
On the restart, Crutchlow momentarily snatched back his lead in the race - but Vinales quickly overtook the British rider and started to separate himself from the rest of the field.
While Vinales rode into the distance, there was a heated battle between four riders - led by Repsol Honda’s Marc Marquez, who rode aggressively to push past Crutchlow and Rossi, as well as Ducati’s Andrea Iannone.
Iannone was the first of the riders to drop off, as he fell from his Ducati with six laps remaining - allowing Crutchlow, Rossi and Marquez to duel for the final two podium positions, while Vinales’ lead at the front extended to over three seconds.
After trading overtakes and bumps, it appeared as though Marquez would emerge from the trio and finish in second - but the World Championship leader shot wide on the penultimate lap and squandered his chances of a podium finish.
This allowed Crutchlow to jump into second place, much to the delight of the British faithful at Silverstone, while Rossi completed the podium and gained valuable points in the World Championship race.
Despite the late mistake, Marquez finished in fourth - just ahead of his Repsol Honda team-mate Dani Pedrosa.
Ducati’s Andrea Dovizioso finished in sixth, ahead of Suzuki’s Aleix Espargaro.
Jorge Lorenzo (Movistar Yamaha), Danilo Petrucci (Octo Pramac) and Alvaro Bautista (Aprilia) rounded out the top ten.
Australian rider Jack Miller finished the race outside of the points in 16th.