Goalkeeper and captain Ronwen Williams was the hero with four saves in the shoot-out as South Africa beat Cape Verde 2-1 on penalties to reach the Africa Cup of Nations semi-finals on Saturday after a goalless draw in their last-eight tie.

Williams had already come up with one vital stop at the end of normal time and the match went on to penalties as it finished 0-0 after 120 minutes in Yamoussoukro.

He then produced a remarkable performance to keep out penalties by Bebe, Willy Semedo, Laros Duarte and Patrick Andrade as South Africa -- who themselves failed to convert two spot-kicks -- progressed to a last-four showdown with Nigeria on Wednesday.

It is their first AFCON semi-final since what can be termed as their glory days, when they won the title as hosts in 1996, were runners-up in 1998 and then finished third in 2000.

Meanwhile, Cape Verde go home at the end of a campaign in which they won a Cup of Nations knockout tie for the first time, although they will regret their poor performance in the shoot-out after having the best of chances during the match itself.

South Africa's veteran Belgian coach Hugo Broos has relied heavily on members of the Mamelodi Sundowns team that dominates the domestic club scene and recently won the inaugural African Football League title.

Bafana Bafana were fresh from their shock 2-0 victory over Morocco in the last 16 and their starting line-up was unchanged for a fourth consecutive game, with Williams one of eight Sundowns players featuring.

Approaching the Charles Konan Banny Stadium along the deserted wide avenues of Ivory Coast's capital city, it was hard to avoid the sensation that the main event was happening elsewhere, in Saturday's other quarter-final 100 kilometres further north in Bouake.

The stadium was almost entirely empty at kick-off although fans, many of them wearing the orange of Ivory Coast's national team, did start flooding in as the game went on.

Those who were absent at the beginning did not miss much, and it took until just after the hour mark for either team to have a clear sight of goal.

The chance fell for Cape Verde, with Joao Paulo Fernandes playing in Garry Rodrigues inside the box.

Rodrigues, starting in place of former Manchester United forward Bebe, had a seemingly perfect angle to pick out the far corner, only to shoot straight at Williams.

Jovane Cabral then hooked a shot over the bar from an inviting position in the 78th minute, and extra time began to feel like an inevitability.

Yet Cape Verde could have ended it before then when substitute Gilson Tavares Benchimol was played in, but his thunderous shot was tipped onto the underside of the bar by Williams.

It took South Africa until the second minute of extra time to seriously trouble Vozinha, the Cape Verde goalkeeper producing two fine saves from efforts at point-blank range in quick succession, first from Mihlali Mayambela, then from Evidence Makgopa.

Onto the penalties they went, and Williams' incredible efforts secured victory for South Africa.