A dream day for the Ducati rider was completed when he also took over the world championship lead from Marc Marquez, who pulled off in a cloud of smoke following an engine failure on his Repsol Honda.
Marquez was running third behind Rossi and Dovizioso when his RC213V engine dramatically expired at the end of the Hangar Straight on lap 13.
Dovizioso - who began the race from sixth on the grid - made his victory pass on Rossi at the same place, with three laps remaining.
Rossi then fell victim to Vinales, the only frontrunner to opt for the soft rather than hard rear tyre, a few corners later. The race ended with the top three covered by just 0.749s.
Crutchlow was less than one-second from Rossi and the final podium place, but still finished as the top Honda rider, 8.5s clear of Dani Pedrosa in seventh. Dovizioso's team-mate Jorge Lorenzo and Monster Yamaha Tech 3 rookie Johann Zarco finished between the RCVS.
Scott Redding claimed his best result since Qatar with eighth in his final Silverstone appearance for Pramac Ducati on a day when Alex Rins (Suzuki) and Alvaro Bautista (Aspar Ducati) completed the top ten.
Pol Espargaro finished a commendable eleventh for KTM, then highsided at turn one after the chequered flag.
Zarco's team-mate Jonas Folger missed the race after a big warm-up accident, which is thought to have been caused by a brake failure.
Dovizioso has now won more races than any other rider this season and will start Ducati's home Misano round back on top of the world championship standings by 9 points from Marquez. 26 points cover the top four riders.
Find more racing news on Crash.net.