Cameroon reached their sixth Africa Cup of Nations final by dismissing hosts Ghana in a tightly-contested game.
Nkong's winner broke the hearts of Ghana fans
Geremi hit the bar in the first half for Cameroon, but the Indomitable Lions barely threatened before substitute Alain Nkong slotted in on 71 minutes.
In the dying minutes Junior Agogo missed one of Ghana's best chances, putting a free header over the bar.
Cameroon defender Andre Bikey was sent off in the 90th minute for pushing a medical official to the ground.
Mexico-based Nkong, who prior to this tournament had last played for Cameroon in the qualifiers for the 2002 World Cup, scored eight minutes after coming on.
Nkong's only other appearance at the tournament so far was in a group game against Zambia, when he also came on as a second-half substitute.
The goal came completely against the run of play, and was Cameroon's first chance of the second half.
In a three-man move they swept away on the break, Jean Epalle laying the ball back to Samuel Eto'o, who passed superbly to Nkong in the penalty area.
Ghana had the better of the play overall, but Cameroon were resolute in defence, where Rigobert Song had a great game.
In hot, humid conditions, the first half was scrappy and cagey, with very little goalmouth action, largely due to poor passing.
Eric Addo wasted a chance to put Ghana ahead in the fifth minute.
With a free-kick drifting into the penalty area, Addo moved in for a header, but he failed to connect with the ball.
In the 21st minute Achille Emana cracked a half-volley just over the bar, and Cameroon had another chance on 38 minutes when Geremi took a free-kick from 40 yards.
Essien and Eto'o in action in Thursday's semi-final
The shot seemed to be heading over, but it dipped down and hit the top of the bar, with goalkeeper Richard Kingson nowhere near.
Despite vociferous support from a colourful home crowd, Ghana found it difficult to push forward with purpose.
The Black Stars midfield lacked flair, with Michael Essien constrained to a defensive role, where he was filling in for suspended captain John Mensah.
The tempo of the game increased towards the hour mark, with Ghana in the ascendancy.
Anthony Annan came close with a 25-yard shot, and John Paintsil headed a Sulley Muntari corner wide.
But the pressure did not result in goals, and Nkong went on to put Cameroon ahead.
Seven minutes after the goal, Carlos Kameni made a crucial save for Cameroon, coming off his line to win the ball from Agogo, who was running at goal.
With Agogo heading over the bar on 81 minutes, time was fast running out for the hosts, and there was to be no comeback.
Many Ghana players were in tears after the final whistle, as their Nations Cup dreams were shattered.
Bikey's red card came in a bizarre incident, when the medical team were attending to a player on the pitch.
The defender pushed one of the medics over, and will be suspended for Sunday's final.
Cameroon are seeking a record-equalling fifth title, having won the tournament in 1984, 1988, 2000 and 2002.
Ghana: Kingson, Sarpei, Pantsil, Addo, Annan, Draman, Ayew (Barusso 86), Essien, Agogo, Muntari, Quincy (Baffour 61).
Subs Not Used: Dauda, Adjei, Mensah, Afful, Alhassan, Asare, Kingston, Kumordzi, Asamoah, Gyan.
Cameroon: Kameni, Geremi, Song, Atouba, Bikey, Emana (Binya 77), Song Billong, Mbia, Job (Nkong 62), Eto'o, Idrissou (Epalle 46).
Subs Not Used: Hamidou, Mbarga, Angbwa, Tchato, Essola, M'Bami, Makoun, N'Guemo, Tomou.
Sent Off: Bikey (90).
Goals: Nkong 71.
Ref: Abderrahim El Arjoune (Morocco).