George Maluleka struck first for the South Africans on eight minutes, in their first real attack, meeting a crisp ball on the edge of the area and lashing a low shot past Nigeria's –poorly-positioned reserve goalkeeper Uche Okafor.
Nigeria had a legitimate shout for a penalty when Haruna Lukman was up-ended in the South African area.
Instead, the Monaco midfielder was booked for a dive.
But Nigeria were soon back in it. The impressive Gbolahan Salami tricked his way past a defender on the right channel and squared for Rabiu Ibrahim to score a mirror-image of Maluleka's goal.
Nigeria continued to threaten and could have gone ahead when Tswanya's screamer was spilled by Pule, but the defence was quick to react.
There was no stopping the Flying Eagles though, and Frank Temile crowned his break-out tournament with a goal.
Gbolahan Salami's free-kick from deep was knocked down by Ganiyu Oseni and with the goalkeeper coming to close down the angle, Temile lobbed the ball under pressure on the stroke of half-time.
Both sides had chances to score in the second half.
Rabiu Ibrahim gave away possession in midfield, and Maluleka took advantage to crash a volley onto the cross bar.
And Yakubu Alfa responded by hitting the upright with a sublime free-kick soon after.
Nigeria were hanging on at the end, but they pulled it off to take revenge on South Africa when it mattered most.
The final will be played on Sunday between Ghana and Cameroon.