Opposition supporters blocked roads with burning tyres and rocks as they protested ahead of a vote of no confidence in President Jacob Zuma.
Demonstrators in Johannesburg and Cape Town held placards which read “fire Zuma” and “no confidence” during a vocal show of opposition against the president, who is facing allegations of corruption and financial mismanagement.
If the no-confidence vote passes on Tuesday afternoon, the 75-year-old and his cabinet will be forced to step down.
The ruling African National Congress (ANC) party has vowed to back Mr Zuma in the parliamentary ballot, which is being held in secret to ensure its credibility.
Eight previous no-confidence motions against Mr Zuma have failed – but they were all held via an open process.
Senior ANC ministers could be heard singing as they walked out of a meeting in which they agreed to support the president.
Chief whip Jackson Mthembu said: “You hear the singing, Zuma was dancing.
“That is what we do when we are under attack.”
Mr Zuma easily survived an impeachment vote in 2016 after South Africa’s highest court ruled he had breached the constitution over government funds spent renovating his private home.
A public prosecutor’s report made reference to improvements such as a cattle enclosure, amphitheatre, visitor centre, chicken run and swimming pool.
The president initially refused to pay any of the money back and claimed the swimming pool was a fire-fighting reservoir.
He later said he would abide by a court ruling ordering him to repay some of the 240m rand (£11m) spent.
Mr Zuma has also been criticised for his links to the Indian-born Gupta family, whom he allegedly granted influence over government appointments, contracts and state-owned businesses.
Mosiuoa Lekota, leader of opposition party Congress of the People, described the secret ballot against the President as “groundbreaking”.
He said: “It places the responsibility of the motion of no confidence squarely on the shoulders of the men and women who sit in the National Assembly.”