South Africa, who lead the series 1-0 after winning the opening match by 52 runs on Sunday, handed leg-spinner Eddie Leie a Twenty20 international debut in place of Kagiso Rabada.
Bangladesh made one change with batsman Rony Talukdar replacing off-spinner Sohag Gazi to make his Twenty20 international debut.
Bangladesh: Mashrafe Mortaza (capt), Shakib Al Hasan, Tamim Iqbal, Soumya Sarkar, Mushfiqur Rahim, Sabbir Rahman, Nasir Hossain, Litton Das, Rony Talukdar, Arafat Sunny, Mustafizur Rahman.
South Africa: Faf du Plessis (capt), JP Duminy, Quinton de Kock, Aaron Phangiso, AB de Villiers, Rilee Rossouw, David Miller, Kyle Abbott, Wayne Parnell, Eddie Leie, David Wiese.
Umpires: Anisur Rahman (BAN) and Enamul Haque (BAN)
TV Umpire: Sharfoudoulla Saikat (BAN)
Match Referee: David Boon (AUS)