Ghana captain Dede Ayew scored one of his team's four goals
Ghana and Cameroon will play in Sunday's final of the African Youth Championship in Rwanda.
The Black Satellites edged a seven-goal thriller against South Africa, hanging on to win 4-3 after an action-packed game, while Cameroon were 2-0 winners over Nigeria.
A nail-biting finish saw a spirited South African side chasing an equaliser in injury time.
Ghana had earlier looked to be coasting to a place in the final, after going 2-0 ahead, courtesy of two first-half goals from Dominic Adiyiah and Ransford Osei.
Phumelele Bhengu got South Africa back into the game on 63 minutes, only for Ghana to restore their two-goal cushion when captain Dede Ayew netted just a minute later.
Osei's second on 71 minutes once more looked to have settled the tie, before Thulani Serero smashed home a spectacular long-range effort a minute later to spark another South African fight-back.
Bhengu made it 4-3 from the penalty spot with just three minutes remaining, but Ghana showed the quality they have displayed throughout the tournament to hold on for the four minutes of injury time and claim the win.
The match between Cameroon and Nigeria also produced plenty of excitement, with both sides creating many chances.
Jacques Daogari connected with a cross to score from close range on 31 minutes, and Germain Tiko got Cameroon's second, in the 66th minute, tapping in after a defensive error by Lukman Abdulkarim.
Nigeria had a penalty 10 minutes later, but captain Lukman Haruna hit the post, and there was no way back for the Flying Eagles.
With hosts Rwanda out of the competition, the games were played in front of a small crowd at the Amahoro Stadium in Kigali.
Nigeria will play South Africa in the third-place play-off on Saturday, a day before the final.
Bookmark with:
What are these?