Vettel, Kimi Raikkonen and Max Verstappen all went just after the start of the race which finished with only 12 of the 20 drivers after the introduction of three safety cars.
The twists and sodden conditions played perfectly into the hands of Hamilton. His Mercedes powered from fifth on the grid to first and the 32-year-old Briton held off Red Bull's Daniel Ricciardo to clinch his third win in a row.
With his 60th Grand Prix victory and seventh this season, Hamilton stands 28 points ahead of Vettel's Ferrari with six races left.
"What can I say? What a turn-around. Fantastic job with the team strategy," Hamilton said over the car radio before leaping out of his car and hugging his engineers.
He added after the race: "I capitalised on the incident … who would have known that would happen?
"It was really unfortunate for the Ferraris but a great result for the Mercedes team."
Hamilton's teammate, Valtteri Bottas, was third and Toro Rosso's Carlos Sainz finished fourth.
Some drivers had expressed concerns about visibility in the wet under floodlights but the night race had hardly started when it lost three of the first four cars on the grid.
Raikkonen’s Ferrari ploughed into Red Bull's Verstappen on the first corner, taking both cars out of the race and also shunting Fernando Alonso's McLaren.
Vettel, who started in pole position, was also nudged and lost his front wing effectively ending his race.