Anrich Nortje claimed career-best bowling figures as South Africa dominated the opening day of the second Test against depleted Sri Lanka in Johannesburg.

Nortje finished with 6-56 as the tourists were dismissed for 157 in just 40.3 overs, with the Proteas already closing in on that below-par total as they were on 148-1 in reply by the close.

Dean Elgar finished up unbeaten on 92, in the process becoming just the 10th South Africa batsman to reach 4,000 Test runs.

The left-handed opener combined with Rassie van der Dussen – who will resume on Monday on 40 not out – to share in an unbroken second-wicket stand worth 114.

Sri Lanka handed debuts to Minod Bhanuka and Asitha Fernando as injuries forced changes to the team that had lost the series opener by an innings at Centurion.

Kusal Perera top scored with 60 from 67 deliveries in their innings but, having made it to 71-1, his dismissal sparked a collapse, a middle order missing Dhananjaya de Silva and Dinesh Chandimal – who both scored half-centuries in the first Test – crumbling.

The visitors lost their final nine wickets for just 86 runs, the impressive Nortje rattling through the tail to claim his second five-wicket haul in the format.

Wiaan Mulder ended the innings with 3-25, including taking two in an over, while the other wicket was picked up by Lutho Sipamla. Despite being passed fit following a groin injury, Kagiso Rabada was not recalled to the team.

Fernando claimed his first Test wicket when Aiden Markram was caught at second slip for five, though that was the solitary success for Sri Lanka’s new-look attack.

Elgar hit 16 boundaries to close in on a 13th Test century; he will no doubt be eager to get there on day two, having been dismissed for 95 in the previous match.