Faf du Plessis led another South African assault on Bangladesh's bowlers before he was forced to retire hurt nine runs short of a century in the third and final one-day international at Buffalo Park on Sunday.
The South African captain made 91 off 67 balls as South Africa piled up 369 for six, their highest one-day total against Bangladesh and the highest total at the ground.
Du Plessis looked set for a ninth one-day international century before he suffered what a team official described as an acute lower back strain while running between wickets. The injury ruled him out of the rest of the match. He hit ten fours and a six.
Temba Bavuma, one of three changes in South Africa's top seven in the batting order, made 48 and helped Quinton de Kock (73) put on 119 for the first wicket, while new cap Aiden Markram hit 66 as he and Du Plessis added 151 off 116 balls for the third wicket before Du Plessis retired hurt.
As in his Test debut, when he made 97 against the same opponents last month, Markram's innings was ended by a run-out. Markram hit four fours and two sixes in an impressive 60-ball innings.