Tillakeratne Dilshan and Ajantha Mendis led Sri Lanka to a 55-run win over South Africa as the opening match of the Champions Trophy was decided by the Duckworth-Lewis scoring method on Tuesday.
Dilshan struck 106 off 92 balls as Sri Lanka amassed 319 for eight, their highest one-day score against South Africa. Spinner Mendis then claimed three for 30 as the hosts finished on 206 for seven from 37.4 overs after rain intervened.
The 24-year-old Mendis was playing against South Africa for the first time and frequently bamboozled the opposition batsmen in the Group B match.
Captain Graeme Smith raced to 58 off 44 balls before being bowled by Mendis's first delivery which zipped back into the left-hander and went through his 'gate'.
Mendis also removed Jacques Kallis (41), who added 81 for the second wicket with Smith in 11 overs, when Angelo Mathews took a fine diving catch at mid-off.
JP Duminy was then bowled first ball by Mendis by the same delivery that accounted for Smith.
Earlier, Sri Lanka were sent in to bat and Dilshan powered to his third one-day international century in 87 balls, thumping 16 fours and a six.
Dilshan was ably supported by captain Kumar Sangakkara, who compiled 54 in a record Sri Lanka second-wicket stand against South Africa of 158.
Mahela Jayawardene (77) and Thilan Samaraweera (37) then added 116 for the fourth wicket.
South Africa next meet New Zealand at Centurion on Thursday while Sri Lanka, looking to seal a semi-final place, travel to Johannesburg to play England on Friday.