Asamoah Gyan 21st minute header sent Nigeria to the third place match and Ghana to the final.
It was a night the Super Eagles stepped up their game and almost secure a goal in the first minute of play, but Obafemi Martins, who was starting a game after recuperating from injury could not put a foot through
The goal hero, who was pulled out towards the end of the match said that Nigeria were the better side of the day: “It’s unbelievable. We are a young team and not many people gave us a chance of making the final.”
Ghana made one change from the side that knocked out hosts Angola in the quarter-finals, with Haminu Draman making way for the fit again midfielder Anthony Annan taking to the field for the first time in Angola.
Nigeria were without defender Onyekachi Apam, sent off in the last eight penalty shoot-out defeat of Zambia, with Obinna Nwaneri called up in his place.
Coach Shaibu Amodu made two further alterations, Obafemi Martins coming in for Everton striker Yakubu Aiyegbeni, and Ayila Yussuf in for Fulham midfielder Dickson Etuhu.
FIFA president Sepp Blatter and a regiment of Angolan soldiers were among the 10,000 plus crowd to watch Ghana given a scare seconds after kick off when Peter Odemwingie crossed to Martins, who was unable to do the pass justice.
Nigeria were looking a good deal more energized than they had done in the quarter-finals with Martins menacing the Ghana back line repeatedly in the first quarter of an hour.
But it was Ghana who took the lead in the 21st minute against the run of play when Kwadwo Asamoah fired in a corner from the left for Gyan to outjump his marker, Nwaneri, and head past Vincent Enyeama.
That was the in-form Rennes’ striker’s third goal of the competition, putting him joint top of the scoring charts.
Ghana, with their sprinkling of youngsters and smattering of experienced stars, almost doubled their lead shortly after only for Gyan’s dipping shot to go over Enyeama’s crossbar.
Nigeria’s front men Odemwingie and Martins were combining well and their double act would have produced an equaliser if it hadn’t been for Ghana captain and skipper Richard Kingson’s athletic save on 26 minutes.
Ghana coach Milovan Rajevic was forced into an unscheduled substitution on the half hour when Draman was introduced into the fray in place of injured Opuku Agyemang.
Seconds after the break Kingson was at full stretch to keep out a shot inadvertly sent in his direction at an alarming rate of knots by defender Lee Addy.
On 63 minutes Rajevic switched Hans Adu Sarpei for Zamalek Ibrahim Ayew, who was joining his younger brother Andre in midfield.
Nigeria then strung together a slick three-cornered move involving Sani Kaita, Chelsea’s John Obi Mikel and Martins but Wigan stopper Kingson was having a great game, and kept Ghana in front by chesting Martin’s close range shot out of danger.
Under-fire Nigeria coach Shaibu Amodu then took off Odemwingie, who handed the captain’s armband to Yakubu Ayegbeni.
The Everton forward was barely on the pitch when he was set up in front of goal by Elderson Echiejile, but his shot though cannoned wide.
Ghana would need all their tenacity and luck to hold on in the dying minutes but they did it to leave the Nigerians’ title hopes in tatters.