Du Plessis retired hurt on 91 and had to be helped off the field with an acute lower back strain and took no further part in the match as South Africa completed a series clean sweep, winning by 200 runs.
He was withdrawn from the two-match Twenty20 international series which will complete what has been a dismal tour by Bangladesh.
Du Plessis was the top scorer in South Africa's 369 for six, their highest one-day total against Bangladesh and the highest total at the ground. Bangladesh were bowled out for 169.
It was another humiliating defeat for Bangladesh, who suffered defeats by ten wickets and 104 runs in the first two matches after similarly lop-sided losses in two Test matches.
Bangladesh were hit by injuries, notably to leading bowler Mustafizur Rahman, who missed all three matches, and opening batsman Tamim Iqbal, who only played in one game.
"It was a big blow but we can't make any excuses," said captain Mashrafe Mortaza. "The rest of the guys have been playing brilliantly in the last three or four years."
Mortaza said the failure of his bowlers to take wickets in South African conditions had been a major problem, while the batsmen had also failed, particularly on Sunday. "It was a brilliant wicket for batting," he said.
Du Plessis was named man of the match but could not collect his award. AB de Villiers, who took over the captaincy, said: "We have had a really good series. Today was probably our best performance because this wicket probably suited them (Bangladesh) the most."
Du Plessis looked set for a ninth one-day international century before he pulled up as he turned for a second run. He had to be helped off the field. He hit ten fours and a six and only faced 67 balls.
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.
The match was soon over as a contest as Bangladesh lost their first five wickets for 61. There was a brief fightback as Shakib Al Hasan (63) and Sabbir Rahman (39) put on 67 for the sixth wicket before both fell to part-time off-spinner Markram.
Fast bowler Dane Paterson took three for 44. De Kock was named man of the series. He scored 287 runs and was only dismissed twice.
Cricket South Africa announced that JP Duminy will take over as captain for the Twenty20 internationals, to be played in Bloemfontein on Thursday and Potchefstroom next Sunday.
First Published: October 22, 2017, 10:48 PM IST