After knocking Egypt, the hosts and favourites, out in the round of 16, South Africa’s Africa Cup of Nations was brought to an end thanks to a late Troost-Ekong goal despite battling back to level matter in the second half.
Nigeria took the lead through Samuel Chukwueze in the first half and looked the better team but a second half header from Zungu sent Bafana Bafana level.
The goal was looked at by VAR, new to the competition since the start of the quarter-final, but the referee say it was fair.
With the game looking destined to go to extra-time, Troost-Ekong poked a corner home at the back post after goalkeeper, Williams, came out and missed with a haymaker to punch clear.
Nigeria are the second side in the semi-final after Senegal beat Benin earlier in the day.