The victory helped South Africa take an unbeatable 2-0 lead in the three-match series and moved them one step closer to reclaiming the world number one spot from Australia in official ODI rankings.
The Proteas now need to win the final one-dayer against the hosts here on Friday to become the top-ranked team in the world.
The win was shaped by Nel who responded to his overnight axing from the squad to tour India this month with an aggressive opening spell that helped his side bowl out Bangladesh for 173 in 48.2 overs.
Nel's new-ball partner Charl Langeveldt chipped in with 3-31, capping an impressive bowling performance by the visitors on a sluggish pitch.
South Africa survived some hiccups before surpassing the target in 48.1 overs with A.B. de Villiers and J Duminy stitching an unbeaten 119-run partnership off 190 balls.
De Villiers scored 69 off 112 balls while Duminy made 49, the duo showing remarkable resilience after the side had lost three quick wickets including that of inspirational skipper Graeme Smith (28) with 60 on the board.
De Villiers hit two boundaries and a six for his 13th one-day fifty while Duminy hit just one four in his 93-ball effort.
Left-arm spinner Abdur Razzak was the most impressive among the bowlers, picking up 2-32 including the big wicket of Smith after Mashrafe Mortaza had accounted for Herschelle Gibbs (3).
Smith, who hit a century to lead South Africa to a nine-wicket win in the opener in Chittagong, found scoring tough against some tight bowling and lost his wicket when he dragged one onto his stumps.
Bangladesh, tottering at 18/4 after electing to bat, owed their total to a 119-run stand between Raqibul Hasan who top-scored with 63 and Shakib Al Hasan (52).
It was the best ever stand for the fifth wicket for Bangladesh against any opponent, surpassing the 116 that Shakib put on with Ashraful against Canada last year.
Raqibul, playing only his second international, brought up his maiden half-century with a single off left-arm spinner Paul Harris before holing out to Smith off Langeveldt.
Shakib, who passed 1,000 runs in one-dayers en route to his 96-ball knock, was caught by Gibbs off Johan Botha.