Stephen Adams saved two penalties to send Ghana through to the final of the African Nations Championship following a goalless draw after extra time.
Ghana's Seidu Bansey was inches away from opening the scoring in just the second minute when his long-range effort drifted just wide of the target.
Despite plenty of attacking intent from both sides in the first half, chances proved to be difficult to create in the opening 45 minutes.
Abubakar Ibrahim came closest for Nigeria with a powerful strike from 35 yards but he was denied by the post.
Ghana were dealt a blow in the second half when Kwabena Adusei was shown a red card for a second bookable offence in the 64th minute of the match.
Despite being forced to play with 10 men for the remainder of the 90 minutes, Ghana managed to hold on to force extra time.
Imenger Barnabus had a great opportunity to put Nigeria ahead early in the first extra period but the forward somehow managed to scoop his shot over the crossbar from six yards out.
The same player missed another chance in the closing stages of extra time when Stephen Adams displayed impressive reactions to tip a header over the crossbar.
Penalties were needed to split the two teams, and Adams proved to be the hero for Ghana as he denied both Solomon Kwambe and Izunna Uzochukwu help his side to a 4-1 win in the shootout and set up a final with Libya.