Egypt will face bitter rivals Algeria in the Africa Cup of Nations last four after an extra-time win over Cameroon.
Egyptian captain Ahmed Hassan made all the headlines, scoring twice and also providing Cameroon's only goal.
Cameroon took an early lead when Hassan headed in a corner for an own goal, before he levelled from distance.
Mohamed Gedo punished Geremi's poor back-pass to put Egypt in front before Hassan was awarded their third, despite his free-kick not crossing the line.
The 34-year-old skipper was making his 170th appearance for the Pharoahs - an African record - and was at the heart of a controlled performance from Egypt which sets up a semi-final with north African rivals Algeria.
It is a repeat of their tense and controversial World Cup play-off match in November, which saw Algeria progress to the finals in South Africa.
Hassan will be grateful to the match officials for allowing his free-kick in the fifth minute of injury time to stand, as replays showed the ball had not crossed the line after it bounced down off the bar.
The Indomitable Lions will not be so thankful, having played some of their best football of the tournament on Monday.
Cameroon were determined to get an early foothold in the game and forced Egypt to concede several early corners.
Emana whipped in a number in quick succession to the near post in what appeared to be a well-practiced tactic, but it was to no avail until the 25th minute.
The corner was heading straight in before taking the faintest of touches off Hassan's head to give Cameroon the lead.
Wael Gomaa (left) of Egypt vies for the ball with Mohamadou Idrissou
Twelve minutes later Hassan atoned for his part in the goal, finding himself in acres of space and hitting a swerving shot from 30 yards which keeper Carlos Kameni allowed to bounce in front of him and into the net.
Egypt almost extended their lead early in the second half, with the Cameroon defence looking very shaky.
Emad Motaeb found the Cameroon rearguard in disarray before Mohamed Zidan then had two successive chances, but neither could beat Kameni.
Paul Le Guen's team regained their composure and began to look dangerous once more, with Emana's fierce strike well saved by Egypt keeper Essam El Hadary.
The second half became a lot more open, with Cameroon pouring forward and producing some nice inter-passing and link-up play as they went in search of a second.
Samuel Eto'o had another quiet performance but came to life with two long-range efforts, one of which was venomous but straight at El Hadary, while the other was skied high and over.
Motaeb could have nicked it at the end of normal time when he had a great chance on his left foot but hit the side-netting instead of the back of the net.
Cameroon started extra-time in a similar vein to the beginning of the game as they sought to take the game to Egypt, with Eto'o lashing in another shot from distance and Pierre Achille Webo hitting another straight at El Hadary.
Midfielder Geremi, who had been influential throughout, then dealt his team a fatal blow.
He hit the sloppiest of attempted back-passes to his keeper and Gedo nipped in to intercept and slide through Kameni's legs.
Three minutes later the match was settled in controversial circumstances as Hassan hammered in a free-kick which Kameni punched onto his bar instead of palming clear.
It bounced down off the upright and the referee's assistant allowed it to stand despite the shot clearly not crossing the line.
Cameroon struggled to recover and were stretched as they pressed forward seeking to pull one back.
They were reduced to 10 men eight minutes from time when Aurelien Chedjou was sent off after being adjudged to have brought down Gedo, after the Egyptian was put clean through.
Egypt finished the game in style, passing the ball around beautifully and toying with a stretched and by now demoralised Cameroon side.
"This is a very important win for the Egyptian team and for all Egyptians," Hassan said.
"We are very happy but we must now prepare ourselves well for Algeria."
Egypt: El Hadari, El Mohamady, Gomaa, Fathallah, Moawad, Hassan (Abdelshafy 118), Fathi, Said, Abd Rabou (Ghaly 85), Zidan (Gedo 67), Moteab.
Subs Not Used: Abdoul-Saoud, Salem, El Sakka, Eid, Tawfik, Wahid, Shikabala, Raouf, Hamdy.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.