|South Africa have a 2-0 lead in the five-match series, with the next game in Bloemfontein on Tuesday [GALLO/GETTY]
Half-centuries by Hashim Amla and JP Duminy sent South Africa to a workmanlike five-wicket win over Sri Lanka on Saturday and a 2-0 lead in their five-match limited-overs series.
Top-ranked one-day batsman Amla hit 55 from 58 balls up front and Duminy's unbeaten 66 from No. 4 guided South Africa to 237-5 in 48.4 overs and past Sri Lanka's 236-6 at Buffalo Park in East London.
Recalled seamer Dhammika Prasad took 3-46 for the tourists after young batsman Dinesh Chandimal had earlier anchored their innings with 92 not out.
South Africa started their chase with a 76-run opening partnership between Amla and Graeme Smith (28), and Duminy played risk-free cricket.
He hit just one boundary - a towering straight six - in his 87-ball innings to see the Proteas home and into a strong position in the ODI contest.
Having blasted out Sri Lanka for 43 and their lowest ODI score on the way to a 258-run win in the first game, South Africa this time ground out victory with disciplined bowling and fielding and a watchful run chase controlled by Duminy.
The Proteas always looked in control but sealed victory only with a scrambled three with eight balls remaining.
"As long as we had wickets in hand I always knew we were going to get it,'' Duminy said.
"We obviously took a bit longer than we should but we always knew we'd get there.''
South Africa are a win away from sealing their first one-day series under new captain AB de Villiers, who started his charge with successive victories after taking over from long-time leader Smith.
Sri Lanka had to lift themselves from a sluggish start, where it was 21-2 after 10 overs having been asked to bat first on a slow pitch under overcast conditions and after light rain briefly delayed the start.
Opener Upul Tharanga made 66 from 85 balls, with six fours and a six, and impressive Chandimal carried his bat for 40 overs to finish just eight short of a third one-day hundred in only his 19th match.
U Tharanga c De Villiers b Morkel 66
T Dilshan run out (Du Plessis) 0
K Sangakkara c De Villiers b Tsotsobe 3
D Chandimal not out 92
M Jayawardene c Steyn b M. Morkel 19
N Kulasekara c Peterson b Tsotsobe 22
A Mathews c M Morkel b Steyn 28
Total (6 wkts, 50 overs) 236
Fall of wickets: 1-0 (Dilshan), 2-21 (Sangakkara), 3-105 (Tharanga), 4-140
(Jayawardene), 5-164 (N. Kulasekera)
G Smith c Tharanga b Prasad 28
H Amla b Prasad 55
J Kallis c Chandimal b Prasad 37
J Duminy not out 66
A de Villiers run out (N. Kulasekera) 17
F du Plessis c and b Malinga 18
A Morkel not out 12
Total (5 wkts, 48.4 overs) 237
Fall of wickets: 1-76 (Smith), 2-94 (Amla), 3-152 (Kallis), 4-193 (De Villiers), 5-224 (Du Plessis)
Despite a late rally from Chandimal, who hit five of his six fours after he reached 50, and a 13-ball 22 from Nuwan Kulasekara, Sri Lanka did not fully recover from their lacklustre start.
"It was definitely much better than last time but I think we were 20-30 runs short in the batting,'' said Sri Lanka skipper Tillakaratne Dilshan, who was run out for a duck in the second over.
"In the first 20 overs we didn't get enough runs. Unfortunately everything is going wrong for me, it's not going my way.''
South Africa's fielding was sharp as Faf du Plessis made a diving stop in the covers and got back to his feet to throw down the stumps with Dilshan centimetres short.
Experienced batsmen Kumar Sangakkara (3) and Mahela Jayawardene (19) fell cheaply, with Jayawardene dismissed by a flying catch from Dale Steyn at short fine leg.
Kulasekara launched three successive boundaries off Steyn in the 39th, the second of which was a superb pull shot that went deep into the crowd over midwicket.
Robin Peterson completed a diving catch at long-on with his back to the batsman to end Kulasekara's brief onslaught of two fours and two sixes.
Angelo Mathews fell last ball of the innings for 28 from 29 balls.
Amla continued his rich form with five fours and two sixes, one over extra cover and the other a flick off his pads. But he was bowled by Prasad,
Jacques Kallis holed out in the deep, and De Villiers was brilliantly run out by Kulasekara to leave South Africa 193-4.
But Duminy worked the ball around for his 15th ODI half-century and the only late drama was a small fire on one of the floodlight pylons at Buffalo Park that brought the fire services to the ground. Play was not affected.