When bad light ended play early, the hosts were 272-3 with Amla on 89.
Amla's innings was notable for some front-foot drives played with great timing and precision.
They also lost Amla before the close as he square cut Benn straight to backward point.
Amla (103no) joined Smith (138no) and the pair dominated the Bangladesh attack in forging a 197-run stand.
Jacques Kallis (13) fell soon after, but man-of-the-match De Villiers and Amla compiled a brilliant match-winning stand.
Day three began with South Africa in control of affairs on 272-3 with Hashim Amla on 89.
Reduced to 31-2, South Africa fought back through Amla and Kallis, who scored steadily up to lunch.
With the free-scoring Smith missing out, Hashim Amla took the vacant position at the top of the order.
However, Kallis and Amla ensured the hosts had nothing else to celebrate for the rest of the day.
The tourists became bereft of ideas and that enabled Smith and Amla to cope comfortably with a wilting attack.
Hashiam Amla (80) and Jacques Kallis (53no) pushed the score along to 311-3.
He put on 242 with Amla, who stroked two fewer boundaries in an innings spanning 241 balls in Colombo.
Amla was no slouch at the other end, showing excellent footwork to take on spinners Chandana and Rangana Herath.
Amla quickly disproved the theory that he might be susceptible to the new ball, however, with another disciplined performance.
Amla's fine display of application resulted in his fifth Test ton as the tourists closed on 393-3, 47 ahead.
Amla battled away bravely and had reached 46 when nicking Steve Harmison behind.
Not only were England incapable of taking a wicket, but Smith and Amla scored uncomfortably quickly for Andrew Strauss.
"A double century is always special, be it any opposition, " said 26-year-old Amla.
"It has been a very good day and we'll certainly go home tonight feeling good about tomorrow, " said Amla.
Skipper Graeme Smith (hamstring), all-rounder Jacques Kallis (elbow) and opening batsman Hashim Amla (groin) are all expected to be fit.
The first to go was Neil McKenzie, caught behind, then Johnson swung the ball in to trap Hashim Amla lbw.
Graeme Smith (0) and Hashim Amla (1) were out early as South Africa slumped to 2-2 before Jacques Kallis' arrival.
Payments over that amount would have to be processed via a financial intermediary subject to the Anti-Money Laundering Act (AMLA).
FORBES: After FATCA, Swiss Government Tackles Money Laundering too
Amla was dropped twice on 149 but made 253, his maiden double century, defying the bowlers for almost 11 hours.
With Amla and Neil McKenzie scoring at almost five an over, Harmison's runs may well prove crucial to England's chances.
He brought up his ton just before tea, reaching the interval on 120, while Amla contributed a more conservative 60.
He and Hashim Amla put on 220 for the second wicket as South Africa soared past New Zealand's feeble 188.
The match was cut to 33 overs after rain delays, but Herschelle Gibbs and Hashim Amla fired 66 from 55 balls.
Amla batted for seven hours and struck 20 fours before being run out as the tourists reached a total of 540.
The in-form Hashim Amla was unbeaten on 44 at stumps with Jacques Kallis on 32, leaving Pakistan in a poor position.
应用推荐