The Super Eagles lost their clean sheet record, though, with captain William Troost-Ekong’s second-half penalty being cancelled by an equally expertly taken effort from the spot by Teboho Mokoena.
The Stade de la Paix in Bouake was swarmed by fans of both teams, in a game that was widely dubbed as the Amapiano derby due to the parallel rivalry between the two countries when it comes to music.
Peseiro made one change to the side that has started Nigeria’s last two games, with the injured Zaidu Sanusi being replaced by Bright Osayi-Samuel.
The Portuguese, however, maintained the 3-4-3 formation, with goalkeeper Nwabali flanked by a back three of Troost-Ekong, Semi Ajayi and Calvin Bassey.
Ola Aina moved to the left wing-back position while Osayi Samuel debuted at right wing-back. In midfield, Frank Onyeka once again started alongside Alex Iwobi.
Victor Osimhen passed a late fitness test to take his place as leading striker, while Moses Simon and Ademola Lookman provided support from the flanks.
Troost-Ekong, Mokoena penalties send game into extra time
Nigeria started the game as the dominant side and controlled the early exchanges, but it was South Africa who were more threatening.
Themba Zwane was the first to go close but his effort lacked precision. Aina also produced a half-chance at the other end, but his cross found no green shirt in the box.
Bafana Bafana, however, seized the initiative as the game wore on, as Percy Tau set up Sphephelo Sithole, whose shot was feeble.
Tau nearly gave Hugo Broos’ side the lead after the half-hour mark when he was played through on goal but his heavy first touch let him down, allowing Nwabali to collect the loose ball.
A few minutes later, Tau had another good chance but he once again fluffed his lines, this time miscuing his shot.
Nigeria, though, ended the first half on a high after both Iwobi and Osimhen found themselves in great positions, but the former fired his shot straight at Ronwen Williams while the latter’s header was way off target.
The deadlock was finally be broken early in the second half when Osimhen went on a solo run and was fouled in the box, resulting in a penalty.
Troost-Ekong stepped up and converted to give Nigeria the lead, making it the second time he’s scored against Bafana Bafana after previously netting against them in the 2019 AFCON.
Nigeria should’ve gone 2-0 in the 83rd minute when substitute Samuel Chukwueze threaded a pass to Lookman, but the Atalanta forward made the wrong choice by trying to dribble past Williams, who stood on his feet to collect the ball.
Peseiro and his side endured a dramatic end to the game when Osimhen thought he had scored their second, only for the goal to be ruled out after VAR check, and a penalty awarded to South Africa after replays showed Alhassan Yusuf fouled Tau in the box in the buildup.
Teboho Mokoena sent Nwabali the wrong way to draw South Africa level, extending the game into extra time.
Nwabali heroics deny Bafana Bafana AFCON final berth
Nigeria have a great record against South Africa in the AFCON and they made sure to keep that run going after winning the game on penalties.
Nwabali produced a heroic performance in the shootout, saving the efforts of Mokoena and Makgopa, while Aina also missed for the Super Eagles.
However, Terem Moffi, Kenneth Omeruo, Troost-Ekong and Kelechi Iheanacho all scored to give Peseiro’s side a deserved 4-2 win in the shootout.
What this AFCON result means for Super Eagles
The result means Nigeria are through to their first AFCON final since 2013, when they won the tournament, and will now face the winner of the other semi-final game between Ivory Coast and DR Congo.
Meanwhile, South Africa will now have to vie for the third/fourth place game, which will take place on Saturday, February 10, against the loser of the other semi-final game.