The veteran left-hander’s 16th one-day century steered Sri Lanka to a commanding 320-5 after the hosts were sent in to bat in the day-night game at the Premadasa stadium.
South Africa were shot out for 140 in reply, in 31.5 over’s, to leave Sri Lanka with a 1-0 lead in the five-match series.
South African captain AB de Villiers won the toss and sent Sri Lanka in to bat.The Proteas, already without three front-line players in Dale Steyn, Jacques Kallis and Graeme Smith, suffered a blow when star batsman Hashim Amla pulled out of the first game due to a stiff neck.
Sri Lanka is captained by 23-year-old Dinesh Chandimal after Angelo Mathews was suspended for two games for slow over-rates during the recent tri-series in the West Indies.
Thirty-five-year-old Sangakkara with two catches and a stumping, earned him the man of the match award, Rangana Herath and Thisara Perera picked up three wickets each.
Sangakkara celebrated his 350th one-day match by surpassing his previous best score of 138 not out, against India in 2005, after Tillakaratne Dilshan fell cheaply in the fourth over.
South Africa made the worst possible start when Colin Ingram was bowled off the first ball of the innings by sling-arm fast bowler Lasith Malinga.
South African captain AB de Villers “It is not the end of the series,” he said. “I know my boys will fight back. There are not a lot of positives we can take from the game, but we can only improve from here.
The second match will be played at the same venue on Tuesday.