Cameroon will face Egypt in the African Nations Cup final after a 2-0 win over Ghana.
Michael Ngadeu-Ngadjui cashed in on a defensive mix-up in the 72nd minute before Christian Bassogog scored a second on the break in stoppage-time at the Stade de Franceville.
Ghana's goalkeeper Razak Brimah was principally at fault for the opening goal, coming for a free kick but failing to collect as defender John Boye instead managed to cushion a header straight into the path of Ngadeu-Ngadjui, who smashed the ball into an empty net.
And Bassogog's clincher ensured Hugo Broos' team will bid for their country's fifth title -- and first since 2002 -- on Sunday.
"This is a group of 23 friends. I've never seen this before in a football team," said Broos, himself a fairly low-key manager who had never been in charge of a national team before.
After a quiet start in which Cameroon pressed most, Ghana had gradually become more dominant but could not cash in their improvement.
Only Harrison Afful's goal-line clearance stopped Cameroon taking the lead in the eighth minute with Adolphe Teikeu's header from a corner, and Razak came to the rescue soon afterwards to keep out Robert Ndip Tambe's left-foot shot on the turn.
New Swansea signing Jordan Ayew had the first clear-cut chance for Avram Grant's men in the 40th minute, but his shot across goal from Christian Atsu's through-ball went the wrong side of the far post.
Fabrice Ondoa had precious little to do in the Cameroon goal until early in the second half, when he had to be alert and brave to beat Andre Ayew to a low cross from his brother Jordan. Then just after the hour, Ondoa did even better to palm away Mubarak Wakaso's fierce left-footed free kick.
Andre Ayew wanted too many touches inside the six-yard box from a corner -- and then in the 75th minute, his right-footed shot went wide.
In between, Razak's costly flap made Ghana chase the game and they were picked off by Bassogog in added time.
Bassogog's goal prompted every member of Cameroon's squad to race off the bench and celebrate on the field at Stade de Franceville. One of them booted the ball high into the stands in delight.
Ghana haven't won the event for 35 years and have lost two finals and four semifinals in the last six tournaments.
"We wanted so much to be in the final," said Grant, who was likely to leave with his contract up. "We did everything to be in the final. We dominated the game, especially the second half ... The first attack, they scored. It is very annoying.
"I am not happy, because we were the better side."
Information from The Associated Press was used in this report.