Bouake: Substitute Kelechi Iheanacho scored as Nigeria beat South Africa 4-2 on penalties after a thrilling Africa Cup of Nations semi-final match in Bouake on Wednesday.
The match ended 1-1 after extra time, and the three-time champions will now face hosts Ivory Coast or the Democratic Republic of the Congo in Sunday's final.
Both goals came from penalties, with Nigeria's captain William Troost-Ekong scoring in the 67th minute and Teboho Mokoena leveling the score from a spot-kick in the 90th minute.
Mokoena's equalizing goal came shortly after Nigeria appeared to have scored their second goal with a tap-in from star forward Victor Osimhen.
However, play was moved back to the other side of the field after VAR alerted the Egyptian referee that South Africa's Percy Tau had been fouled inside the area, and the match officials agreed.
Chryso Mdau gave South Africa a chance for victory in stoppage time after regular time, but he flared up after goalkeeper Stanley Nwabali parried Mokoena's free kick.
South Africa finished with 10 men after Grant Kekana was sent off for a last-defender foul in the 115th minute.
Nigeria entered their match against South Africa with a perfect record, having won their last three meetings in Africa's premier football competition.
The Super Eagles defeated Bafana Bafana (The Boys) 2-0 in the semi-finals in Nigeria in 2000, 4-0 in the group game in Tunisia four years later, and in Egypt in 2019. They won 2-1 in the quarterfinals.
Qatar sets up Asian Cup final against Jordan: 'The best is yet to come'
Nigeria coach Jose Peseiro made changes to the team that defeated Angola 1-0, bringing on Bright Ossai-Samuel in place of left-back Zaidu Sanusi, who did not practice the night before the match.
Napoli's star forward Osimhen started for the three-time champions after arriving late in Bouake from Abidjan after recovering from abdominal discomfort.
Terror of Osimhen
Some Nigerians at the stadium showed their support for Osimhen by wearing replicas of the protective masks he still wears three years after his eye socket injury.
Belgian-born South African coach Hugo Bruce also made one change after the penalty shootout victory over Cape Verde, recalling central defender Siyanda Xulu and benching Thapelo Morena.
South Africa had the same number of shots on goal, but they had more shots on target, had more possession and were forced to take more corners in a tense and lively first half.
Just one minute after the kickoff, Osimhen, the reigning African player of the year, fell to his knees clutching his stomach, but continued to practice and worked hard even after receiving treatment.
Pre-match favorites Nigeria were awarded a free kick and Semi Ajayi meekly headed goalkeeper Ronwen Williams, saving four penalties against Cape Verde.
Percy Tau had several half-chances for South Africa, but a weak shot and subsequent ferocious first touch let him down in front of a crowd of 32,000.
Nigerian goalkeeper Stanley Nwabali, who plays for South African top club Chippa United, produced a stunning one-handed parry to deny Evidence Magopa as half-time approached.
The stalemate ended midway through the second half when Motobi Mvala fouled Osimhen and Troost-Ekuon converted a penalty, with the Super Eagles gaining the upper hand.
Makgopa's shot narrowly missed the target with 15 minutes left as South Africa chased an equalizer in the central city of Ivory Coast.
Osimhene's goal was then disallowed, followed by 30 minutes of end-to-end extra time that included Mokoena's equalizer, Mudau's missed shot and Kekana's red card before the penalty shootout.