The Springboks will meet Wales in the second semi-final of 2019 Rugby World Cup in Japan next week.
The South Africans ended the fairy-tale run of the history-making host nation, Japan, with a 26-3 win in Tokyo on Sunday.
“We knew what these boys would bring, and it took a lot out of us to keep on fighting,” said Springbok captain Siya Kolisi after the hard-fought encounter.
He also paid tribute to the Japanese crowd that packed that Tokyo stadium, saying that they “should be proud of their team”.
South Africa led 5-3 at the break.
Earlier on Sunday Wales booked their place in the semi-finals with a come-from-behind 20-19 win over 14-man France.