Three wickets from Vernon Philander have helped give South Africa control of the first Test match with Sri Lanka after day two in Port Elizabeth.
South Africa began the day on 267-6 but they could only add a further 19 runs to their total as Sri Lanka took full advantage of the bowler-friendly conditions.
Suranga Lakmal ended with figures of 5-63 and the tourists would have been confident of at least building some pressure on the Proteas, but their top order soon fell away.
Philander struck twice while Kyle Abbott picked up the wicket of opener Dimuth Karunaratne for just five as Sri Lanka were quickly reduced to just 22-3.
Angelo Mathews (39) and Dhananjaya de Silva (43*) both added valuable knocks but they did not receive the necessary support from their teammates as they reached the close on 181-7, still 105 runs adrift of South Africa's total.