Bangladesh won the toss once again and elected to field this time. The runs were not coming easily 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. The Proteas posted 353/6 in 50 overs.
South Africa 353/6 in 50 overs (de Villiers 176, Amla 85; Rubel 4/62, Shakib 2/60)
-Ruffin, Correspondent, bdcrictime.com