Port Elizabeth: South AFrica beat by eight wickets in the first one-day international against South Africa at St George's Park on Saturday.
The hosts gain a 1-0 in the 5-match ODI series.
The confidence boost Sri Lanka gained from their T20 series victory did not carry over into the start of the one-day internationals
In chasing, modest 182, an opening stand of 71 in 13 overs between Quinton de Kock and Hashim Amla, two of the senior South Africa players rested from the T20 series, broke the back of the chase and the target was knocked off with more than 15 overs to spare.
Suranga Lakmal's first ball took de Kock's outside edge but the ball fell short of the slips and de Kock could have been run-out from mid-off on 21, however the way the opening pair imposed themselves on Sri Lanka's wrist spinners - Jeffrey Vandersay and Lakshan Sandakan - showed their intent for a ruthless performance.
Sandakan, a late call-up to the one-day squad, 14 off his first. Although Sandakan struck against the run of play, when de Kock drove to cover, boundaries came regularly. Amla barely broke sweat in bringing up his fifty off 56 deliveries and Faf du Plessis was able to enjoy an extended net after his brief down time after the Test series.
Earlier, Parnell and Tahir took three wickets each as Sri Lanka struggled to 181 all out.
Kusal Mendis was the only batsman to shine for the tourists, making 62 off 94 balls with ten fours.
Left-arm seamer Parnell took three for 48 while leg-spinner Tahir showed superb control in a strong westerly wind, taking three for 26.
Parnell plunged Sri Lanka into early trouble by taking wickets with the first balls of the second and fourth overs after South African captain AB de Villiers won the toss and decided to bowl.
Niroshan Dickwella, man of the series in Sri Lanka's Twenty20 triumph, made only one before he went back on his stumps and was leg before wicket to Parnell.
New cap Sandun Weerakkody slashed at the first ball of Parnell's next over and was caught at first slip for five.
Mendis and Dinesh Chandimal put on 72 for the third wicket in a partnership dominated by Mendis before Tahir ripped the heart out of the batting by taking three wickets in four overs.
Chandimal found scoring difficult on a slow pitch and made only 22 off 56 balls before he was bowled by a googly from Tahir.
Mendis, who had made only 87 runs in seven innings since hitting 58 in the second innings of the first Test at the same venue last month, hit ten boundaries in his 94-ball innings.
His first seven scoring strokes were fours, mainly struck fluently on the off side.
He was given out leg before to Tahir by umpire Richard Kettleborough when he had 46, surviving on review because of a bottom edge, but could not escape a second lbw decision when he was squared up by Tahir, who then had Sri Lankan captain Upul Tharanga caught at cover.
Brief scores
Sri Lanka - 181 (Mendis 62, Tahir 3-26, Parnell 3-48)
South Africa - 185 for 2 (Amla 57, du Plessis 55*)
Result - South Africa won by 8 wickets