Hamilton, who started fifth on the grid
after a lackluster qualifying on Saturday, profited after chaos reigned at the start of the night race as both Ferrari's crashed out.
Kimi Raikkonen and Red Bull's Max Verstappen collided on the run down to Turn One before the Finn plowed into the side of pole-sitter Vettel. The German continued only to spin off moments later at Turn Five, his car smashing into the barriers, coolant spewing from its rear.
Both Verstappen's and Raikkonen's race was also over -- so too was Fernando Alonso's who got caught up in the incident after making a fast start from P8. The Spaniard limped on before retiring on lap nine.
The resulting carnage flung open a door through which Hamilton gratefully drove, followed by Daniel Ricciardo who would take second place with Hamilton's Mercedes' teammate Valtteri Bottas in third.
'God blessed me today...'
It was the Briton's 60th win of his career and his seventh of the 2017 season which all means that Hamilton now has a 28-point lead over Vettel with 14 rounds of the 2017 season complete.
"Firstly, I want to congratulate my team," Hamilton said on the podium. "Yesterday we struggled and we had no idea what was going to happen. Obviously we were fortunate with the Ferraris at the beginning.
"God blessed me today, for sure. Who knew that would happen? It was really unfortunate for Ferrari -- I was hoping to race Sebastian at the beginning. But of course it's better the way it is," the three-time world champion added.
Debate about who was to blame for the collision started in earnest before the race was over.
Max Verstappen told reporters: "I think Sebastian started squeezing me -- maybe he didn't see Kimi but that's no excuse," while Ferrari took a different view, tweeting: "VER took #Kimi7 out and then he went on to #Seb5"
Vettel himself was keen to play down the incident.
"Not ideal is it?" he said, responding the reporters. "I didn't see that much. I saw Max and then Kimi hitting the side of me. This is how this business is. We move on. I'm sure there will be more opportunities."
Daniel Ricciardo, Verstappen's teammate chose, perhaps wisely, to sit on the fence.
"I kind of watched the chaos in front of me -- I was fortunate enough to have a bad start. It looked like three going into one, but I don't know who was to blame."
Hamilton on cruise control
Never before in the 10-year history of the Singapore Grand Prix had rain affected the night race, but a deluge before sundown served notice of what a difficult night might be in store.
The rain cleared only to return 15 minutes before lights out, forcing drivers to switch to intermediate tires and full wets while waiting on the start grid.
The added grip was little help to Verstappen and Raikkonen as they slipped up, and into each other as they fought over the same piece of track.
It was an unexpected blessing for Hamilton who, with both Ferrari drivers out and only one Red Bull to deal with, controlled the race as the rain relented and the track dried out.
The Briton easily kept Ricciardo at arm's length even when the Safety Car inevitably came out as members of the chasing pack slid into the barriers -- in all, eight drivers retired.
Hamilton took the checkered flag after two hours with 58 laps of the scheduled 61 complete -- motorsport's world governing body, the FIA, stipulate that a race can last a maximum of 120 minutes.
Further down the field, Carlos Sainz finished fourth -- his best-ever F1 result -- with Sergio Perez and Jolyon Palmer following on behind.
Palmer's first points of the season may stand him in good stead as he looks to find another seat next year after recently being axed by Renault in favor of Sainz.
Sainz battled with his future Renault teammate Nico Hulkenberg for most of the race before the German was forced to retire.
The DNF means Hulkenberg now holds the record outright for the most F1 races without a podium finish
. Singapore marked his 129th race without any silverware, one more than compatriot Adrian Sutil who left F1 in 2014.
Ferrari and Vettel will need all the podiums they can get in the remaining six races starting at Malaysia in two weeks' time.
Vettel has a good record at the Sepang International Circuit with four wins compared to Hamilton's one. But after Spa, then Monza and now a win in Singapore, the Briton has momentum and perhaps the racing gods on his side as the season enters the final straight.