Amla (31) shared a 151-run stand for the third wicket with skipper AB de Villiers (75) after the visitors won the toss and chose to bat at the R Premadasa Stadium.
Unorthdox spinner Ajantha Mendis was the most successful of the bowlers, taking 3-61 including the prized scalp of star all-rounder Jacques Kallis for a duck.
The South Africans got off to a steady start, putting on 58 before losing two batsmen in quick succession.
Opener Quinton de Kock was bowled by Angelo Mathews (1-30) for 27 which included a mighty six over the mid-wicket fence off spinner Sachithra Senanayake (1-49).
Position of strength
Just two balls later, Mendis trapped Kallis leg before wicket with his trademark carrom ball to reduce the Proteas to a shaky 60-2.
Amla and de Villiers made light of the twin setbacks and steered the innings to a position of strength with their 141-ball stand.
Amla, named the new Test skipper last month, was in top form although he was dropped on 49 by Thisara Perera at long-on.
The opener also saw an appeal under the Decision Review System go in his favour, with replays remaining inconclusive about whether he had nicked to the wicketkeeper while trying to go for a hook shot.
At the other end, de Villiers played a sparkling knock, his 75 coming off just 70 balls with the help of five fours and a six.
The wicketkeeper-batsman, who was also dropped on 17, was out when he chipped a simple catch to Nuwan Kulasekara off Mendis.
Amla completed his 13th ODI century before being trapped in front of the middle stump off Mendis. He hit eight fours and a six.
Amla had also hit a century in a practice game against a Sri Lankan President’s XI on Friday.
On Sunday quickfire knocks by David Miller (36 not out) and Ryan McLaren (22 not out) led the visitors to their highest ODI total in Sri Lanka against the hosts. – Sapa-AFP