South Africans 347 (Elgar 109, Verreynne 80, Kuhnemann 4-78, Neil-Smith 3-69) and 9 for 0 (Elgar 6*, Erwee 2*) lead Cricket Australia XI 226 (Kellaway 105, Doran 78, Ngidi 3-26, Coetzee 3-36) by 130 runs
The 22-year-old Coetzee has genuine speed and had Jordan Buckingham caught in the gully and then dismissed Chris Tremain and Liam Hatcher for ducks.
In shattering Hatcher's stumps he also ensured CA XI were bowled out for 226 in reply to South Africa's first innings of 347.
Ngidi took his early wickets in five fiery and fast overs. He dismissed three of the top four Sheffield Shield run-scorers this season, with Tim Ward caught down the leg side by wicketkeeper Kyle Verreynne with the first ball of his opening spell before he accounted for Sam Whiteman and captain Peter Handscomb.
South Africa earlier resumed at 335 for 7 but soon lost Kagiso Rabada and Verreynne. Fast bowler Marco Jansen was then dismissed for a duck.
Middle-order batter Temba Bavuma did not feature in the first innings as he is nursing an elbow injury. Captain Dean Elgar, who top-scored with 109 on day one, said after the close of play on Friday he hoped Bavuma would recover and get some valuable time in the middle before the first Test against Australia which starts on December 17 at the Gabba.