Elgar, Ngidi and Nortje starred for the hosts as they sealed the second Test inside three days.
Dean Elgar hit his 13th century before Sri Lanka fought back on day two of the second Test against South Africa at the Wanderers on Monday.
Anrich Nortje six blows Sri Lanka away before Dean Elgar 92 cements strangle hold.
Sri Lanka made only 180 to lose by an innings and 45 runs.
Faf du Plessis fell one run short of a double hundred as South Africa take command against Sri Lanka.
Depleted Sri Lanka toil with two bowlers injured but struggle for consistency
South African bowlers struggle for rhythm leaves Sri Lanka reaching for records. Mulder bagged three wickets.
Santhush Gunatilake and Dilshan Madushanka new face for two-match Test series which starts from Dec. 26, 2020.
South Africa call up uncapped Sarel Erwee, Kyle Verreynne and Glenton Stuurman for Sri Lanka Tests.
South Africa will play England, Sri Lanka, Australia and Pakistan at home during the 2020-21 season.