A finely-poised tie remained goalless until the 72nd minute, when Ghana goalkeeper Razak Brimah failed to deal with a free-kick into his area and John Boye’s weak defensive header merely served as an assist for Ngadeu to control and fire home.
Bassogog then broke away to clinch the win and spark wild celebrations as Hugo Broos’s side progress to a final against Egypt in Libreville on Sunday.
That will be the Indomitable Lions’ first Cup of Nations final since they lost 1-0 to the Egyptians in 2008. Then they also beat Ghana in the semi-finals.
Ghana, who have still never beaten Cameroon at the competition, will now go to Port-Gentil for a third-place play-off against Burkina Faso on Saturday.
This was their sixth consecutive Cup of Nations semi-final, but their wait to win the trophy for the first time since 1982 will go on.
Just as in their quarter-final win against DR Congo, Ghana were once again without Asamoah Gyan at kick-off as their captain struggled to shake off a groin injury.
In his absence, the Black Stars were second best for most of the first half and Cameroon were unfortunate not to be in front after a lively start to the match.
Adolphe Teikeu saw his header from a Benjamin Moukandjo corner cleared off the line by Harrison Afful and Razak had to get down to save when Robert Ndip Tambe swept a Moukandjo cross towards goal.
Moukandjo, the France-based captain of this inexperienced Cameroon side, also headed onto the roof of the net as the Ghanaians weathered the storm.
With Andre Ayew struggling to get into the game from his position on the left flank, Avram Grant’s side made little impression going forward until five minutes before half-time.
That was when Christian Atsu’s pass into the box split the Cameroonian defence and found Jordan Ayew, whose shot from a tight angle whistled just wide of Fabrice Ondoa’s far post.
In a reversal of roles, Ghana were the better team at the start of the second half with the lightning quick winger Atsu their main source of danger.
When one of his runs was illegally halted outside the area, Mubarak Wakaso whipped in the resulting free-kick and Ondoa flew high to his right to turn the ball behind.
The Indomitable Lions steadied themselves and got the breakthrough from a set-piece of their own, the goal Cameroon’s first in almost five hours since Ngadeu netted the winner against Guinea-Bissau in the group stage.
Ghana then sent on Gyan for the closing stages but as they pushed men forward Bassogog broke downfield and beat Razak to make it 2-0 in the third minute of added time.
Download our app and read this and other great stories on the move. Available for Android and iOS.