Published: 2017-10-18 22:37:02 BdST
De Villiers smashed his highest ODI score of 176 from 104 balls as South Africa posted 353 for six in their 50 overs having been asked to bat, before restricting the visitors to 249 all out in 47.5 overs in their reply.
De Villiers was involved in a third wicket partnership of 136 with Hashim Amla (85 from 92 balls) and 117 for the fourth with JP Duminy (30 from 30 balls) as he thumped 15 fours and seven sixes, making batting look easy on a slow wicket.
He was eventually caught at deep midwicket by Sabbir Rahman off the bowling of Rubel Hossain having looked on course for a double ton.
Bangladesh made a good start to their reply as Imrul Kayes (68 from 77 balls) and Mushfiqur Rahim (60 from 70 balls) tried to keep up with the rate, but were strangled by career best figures from seamer Andile Phehlukwayo (four for 40) and the wily spin of Imran Tahir (three for 50).
The final match of the series will be played in East London on Sunday.