East London - Half-centuries from Hashim Amla and JP Duminy led South Africa to a five wicket victory over Sri Lanka in the second one-day international at Buffalo Park on Saturday.
South Africa have a 2-0 lead in the five-match series.
Despite three wickets by Dhammika Prasad, the Proteas never looked in danger in a somewhat dull affair.
Set a target of 237, Graeme Smith and Hashim Amla put on 76 runs for the first wicket before Smith (28) gifted his wicket to the opposition.
He looked furious with himself after he top-edged Prasad to Upal Tharanga on the leg-side.
Amla, meanwhile, batted splendidly for his 55 until he fell victim to Prasad, who splayed his stumps.
Keeping a left-hand/right-hand combination, Duminy (left-hand bat) moved up in the batting order and, together with Jacques Kallis, steadied the chase, adding 58 runs together.
Duminy stroked an unbeaten 66, remarkably without scoring a four and only one six.
He was named man of the match as he had also bowled six tidy overs, conceding 26 runs.
Kallis (37) became Prasad’s third victim when he was looking to go over extra cover but ended up slicing it to the sweeper on the boundary.
Just before AB de Villiers (17) was run out, one of the lighting pylons caught on fire and South Africa were forced to bat on in poor light.
The floodlights, which had been on all day in overcast conditions, were no longer operable while the hosts soldiered on, still requiring 44 runs for victory.
Lasith Malinga, who caught and bowled Faf du Plessis (18) missed an opportunity when he dropped Albie Morkel off his next ball, but the outcome was never in doubt.
Earlier, Sri Lanka rallied to score 236 for six after another disastrous start to their innings.
Tillakaratne Dilshan was run out for a duck in the second over after he forced the ball to Faf du Plessis at point.
The fielder caught the ball off the bounce and hurled it at the stumps, clipping the bails and catching the skipper just short of the crease.
Once again, Sri Lanka’s most experienced batsmen failed to set the stage alight.
Kumar Sangakkara (3) got a thin edge to Lonwabo Tsotsobe and was caught behind by wicketkeeper De Villiers and it was left to Upal Tharanga to set the foundation.
He survived a loud appeal for caught behind when he was on 18. The umpire initially gave him out but Tharanga asked for a decision review and replays showed the ball had not touched the bat.
He finally holed out to a thin edge off Morne Morkel for a well-deserved 66.
Mahela Jayawardene (19) played the shot of the day when he ran down the track and played the ball straight down the track over the bowler’s head, for four.
Finally looking comfortable for the first time on the tour, he was out off the next ball to a superb catch by Dale Steyn at short fine leg.
Steyn plucked the ball out of the air while his body was almost horizontal above the ground.
Nuwan Kulasekara, playing in his 100th ODI, picked up the pace with 22 runs off 13 balls, which included two fours and two sixes.
He was brilliantly caught by Robin Peterson, running from mid-on towards the boundary, with his back to the wicket.
Dinesh Chandimal was unbeaten on 92 and shared a 72-run stand with Angelo Mathews (28) who was caught off the last ball of the innings.
South Africa were outstanding in the field putting more pressure on the visitors as they tried to increase their run-rate.
Lonwabo Tsotsobe (2-43) and Morne Morkel (2-39) were the pick of the bowlers.
AB de Villiers (captain, wkt), Hashim Amla, Graeme Smith, Jacques Kallis, JP Duminy, Faf du Plessis, Albie Morkel, Robin Peterson, Dale Steyn, Morne Morkel, Lonwabo Tsotsobe
Tillakaratne Dilshan (captain), Upul Tharanga, Kumar Sangakkara (wkt), Mahela Jayawardene, Angelo Mathews, Dinesh Chandimal, Kosala Kulasekara, Nuwan Kulasekara, Lasith Malinga, Rangana Herath, Dhammika Prasad.
Umpires: Billy Doctrove (WIS), Shaun George (RSA)
TV umpire: Nigel Llong (ENG)
Match referee: Jeff Crowe (NZL)