South African President Jacob Zuma says general elections will be held on May 7 as the country celebrates 20 years of democracy.

The elections are set to be the most closely contested in years, although the ruling African National Congress (ANC) is almost certain to extend its two-decades of rule.

"The electoral term of the present government will come to an end on the 22nd of April," the Reuters news agency quoted Zuma saying.

"The time has come for us to work together again, to prepare for the fifth national general elections."

Anger is mounting against the ANC, which spearheaded the fight against apartheid, over charges of failing to lift millions of blacks out of poverty.

South Africans say many senior officials in the party, which won nearly two thirds of the vote in the last elections in 2009, have abused their government positions to line their personal pockets.

Angry residents in largely black townships across the country have, over the past month, barricaded roads and set buildings and cars on fire in protests against poor services from the government.

Protests against poor services continued in various parts of the country on Friday.

In Hebron, a township outside Pretoria, residents demanded to see their province premier, complaining they lacked basic services like water and sanitation.

Parties such Julius Malema's Economic Freedom Fighters are tapping into the discontent to advocate for nationalisation of mines and the seizure of white-owned land.

Malema, who was expelled from the ANC for bringing the party into disrepute, is expected to attract many poor black South Africans, but will struggle to unseat the party, which still has solid support in most of the country's nine provinces. 

The ANC, which has been in power since 1994 when apartheid ended after Nelson Mandela was elected South Africa's first black president, has until now dominated the political scene with no serious challengers. 

Source: Agencies