Sri Lanka's Dilruwan Perera, left, celebrates with captain Angelo Mathews after taking the wicket of South Africa's AB de Villiers (not pictured) during the third day of their second test cricket match in Colombo. Picture: Dinuka Liyanawatte

Colombo - Off-spinner Dilruwan Perera struck twice in one over to dent South Africa's hopes of getting close to Sri Lanka's first innings total as the hosts pushed for a series-levelling win in the second test on Saturday

South Africa, who resumed on 98 for three, went to third day lunch on 163-5 with captain Hashim Amla holding up one end with a defiant unbeaten 77 and JP Duminy on three. The tourists trailed by 258 at the interval with just five wickets in hand.

Overnight pair Amla and AB de Villiers took South Africa to 143-3 in the first hour of play, adding 45 fairly untroubled runs, with the former completing his 28th test fifty off 140 balls.

The only alarming moments of the day up to that point came when De Villiers was struck on the helmet by a short delivery from Suranga Lakmal and then survived an appeal for a catch behind off the same bowler when he was on 30.

TV replays confirmed the ball had bounced before it reached the wicket-keeper but the introduction of Perera in the 17th over of the day dramatically changed the momentum of the innings.

Perera struck twice in his 19th over by getting rid of De Villiers for 37 and the dangerous Quinton de Kock for a duck.

Perera was able to make one turn appreciably to beat De Villiers' bat and crash onto his pads, leading the umpire to raise his finger immediately with the decision upheld following an unsuccessful review by the visitors.

De Villiers' dismissal ended a stubborn fourth-wicket partnership of 79 with Amla.

De Kock lasted just two balls before he was beaten by the flight and clean bowled as Perera ended the morning session with figures of 3-40. - Reuters