Daniel Ricciardo was 25.4 seconds behind Nico Rosberg with 13 laps to go and closed to within half a second of his rival by the chequered flag.
Meanwhile Sebastian Vettel climbed from 22nd place on the grid to finish fifth, one place behind team mate Kimi Raikkonen.
Kevin Magnussen took full advantage of his strong start: having got up to tenth place on lap one he finished there too.
2016 Singapore Grand Prix lap chart
The positions of each driver on every lap. Scroll to zoom, drag to pan, click name to highlight, right-click to reset. Toggle drivers using controls below:
Go ad-free for just £1 per month
2016 Singapore Grand Prix race chart
The gaps between each driver on every lap compared to the leader’s average lap time. Very large gaps omitted. Scroll to zoom, drag to pan and right-click to reset. Toggle drivers using controls below: