Vishwa Fernando took four wickets as underdogs Sri Lanka heeded new captain Dimuth Karunaratne's call to "compete in every session" on the first day of the first Test against South Africa at Kingsmead on Wednesday.
South Africa, overwhelming favourites against a team seemingly in disarray, were bowled out for 235. Sri Lanka were 49 for one at the close.
Left-arm opening bowler Fernando dismissed both South African opening batsmen cheaply as the hosts found themselves floundering at 17 for three.
Fernando, 27, playing in his fourth Test, went on to claim career-best figures of four for 62. Kasun Rajitha took three for 68.
Wicketkeeper Quinton de Kock, batting at number six because South Africa picked five specialist bowlers, gave the South African innings some respectability by hitting 80 off 94 balls before he was last man out.
SCORES IN BRIEF
SOUTH AFRICA: First Innings 235 all out (Bavuma 47, du Plessis 35, de Kock 80; V. Fernando 4-62, Rajitha 3-68)
SRI LANKA: First Innings 49 for 1 (Karunaratne 28 not out, O. Fernando 17 not out; Steyn 1-10)