South Africa posted a mammoth 353/6 after being put into bat. The runs were not coming easily at the start on a heavy outfield with only three boundaries been hit in the first powerplay.
Shakib dismissed opposition skipper Faf du Plessis for a three-ball duck in the same over with a beauty.
AB de Villiers made run-scoring easy ever since he came out to bat. With Amla scoring his fifty in 55 balls, AB smashed a 34-ball half-century and continued to bat comfortably.
The AB-Amla duo added a brisk partnership of 136 runs for the third-wicket. Amla missed out on his fourth consecutive century in the series as he was sent back for 85 off 92 with four fours by Rubel Hossain.
de Villiers brought up his 25th ODI hundred in 68 deliveries. It is also his first international ton against Bangladesh. The 33-year-old also brought up his 150 in 92 balls and also crossed his previous highest score of 162*.
de Villiers was finally dismissed by Rubel in the 48th over. The Protea star smashed 176 runs from 104 deliveries including 15 fours and 7 sixes. He made a 117-run partnership with JP Duminy, in which Duminy contributed only 27 runs.
Rubel sent back Duminy (30) and Dwaine Pretorious (0) on consecutive balls in the last over to take 4 wickets for 62 runs.
Imrul and Mushfiqur took the responsibility and put on a 93-run stand for the third-wicket. Imrul scored his first half-century of the tour, scoring 68 off 77 balls hitting six fours and a six. Mushfiqur brought up his fifty in 60 balls.
After dismissing Imrul, Imran Tahir sent back Shakib Al Hasan too for 5 which brought the pressure back on Tigers. Mushfiqur departed for for 60 off 70 with four fours and a six.
Bangladesh were bundled out for 249 runs in 47.5 overs as the Proteas clinched series with a victory of 104 runs. Andile Phehlukwayo picked up career-best four wickets for 40 runs while Tahir took 3 for 50.
South Africa 353/6 in 50 overs (de Villiers 176, Amla 85; Rubel 4/62, Shakib 2/60)
Bangladesh 249 allout in 47.5 overs (Imrul 68, Mushfiqur 60; Phehlukwayo 4/40, Tahir 3/50)
South Africa won by 104 runs
Man of the Match: AB de Villiers (176)
-Ruffin, Correspondent, bdcrictime.com