Fast bowler Vernon Philander claimed five wickets as South Africa dismissed Sri Lanka for 180 at tea on the first day of the first Test on Thursday.
At close of play, South Africa were 90 for 1 with skipper Graeme Smith getting out for 61 just before close of play.
Earlier, South Africa's much-vaunted attack were struggling in helpful conditions as Thilan Samaraweera and Angelo Mathews added 65 for the fifth wicket off just 80 balls.
The pair took Sri Lanka to 156 for four before Philander struck three times in four overs to complete his third five-wicket haul in three tests.Philander's destructive burst began with two wickets in successive deliveries, both given out on review, as Samaraweera (36) edged an excellent delivery that nipped away off the seam and Kaushal Silva brushed the ball with his glove as it flew to wicketkeeper Mark Boucher down the leg side.
Thisara Perera took a single off the hat-trick ball, but only lasted till the next over when he failed to read an Imran Tahir googly and Jacques Kallis made a stunning reflex catch at slip as the edge bounced off Boucher's thigh.
Sri Lanka had lost three wickets in five balls to slump to 157 for seven and Philander struck again to have Mathews caught by Kallis for 38. Philander became the first South African to claim three five-wicket hauls in his first three Tests.
Brief scores: SL 180 (D Steyn 4-18, V Philander 5-53) v SA 90/1 (G. Smith 61).