The Atlas Lions exerted pressure on the Pharaohs’ defence from the first whistle and they were awarded an early penalty after Ayman Ashraf was adjudged to have fouled the pacey Achraf Hakimi in the box.
Sofiane Boufal then stepped up and hit the back of the net – sending goalkeeper Mohamed Abou Gabal the wrong way to hand Morocco a 1-0 lead just seven minutes into the encounter.
Egypt responded surging forward in numbers as they looked to level matters. Goalkeeper Yassine Bounou made two magnificent saves to deny Ashraf and Ahmed Abou El Fotouh – keeping Egypt at bay.
The Pharaohs then suffered a blow as their first choice centre back Ahmed Hegazy went down injured and he had to be substituted. Morocco were leading 1-0 at the interval.
Egypt came out firing all cylinders with Salah, who had a quiet first-half, looking lively as the two-time African Footballer of the Year set up Mahmoud Treguezet and the substitute’s effort narrowly missed the target.
Parity was restored in the 53rd minute when Bounou parried Mohamed Abdelmonem’s headed effort into Salah’s path and the Liverpool FC superstar made no mistake as he fired home from close range to make it 1-1.
The Atlas Lions then took control of the encounter and Abou Gabal became a busy man. The Zamalek shot-stopper, who is nicknamed Gabaski, pulled off great saves to deny Munir El Haddadi and Nayef Aguerd.
Aguerd’s chance proved to be the last chance of the entertaining encounter in regulation time and the two teams went into extra-time following a 1-1 draw within 90 minutes.
The Pharaohs took the lead for the first time on the night after a brilliant run Salah, who then played a low pass for Trezeguet and the Aston Villa star scored with a tap in to make it 2-1 to Egypt in the 100th minute.
The goal sealed Egypt’s 2-1 victory over Morocco as the Atlas Lions could not seriously test substitute keeper Mohamed Sobhy, who had replaced an injured Gabaski.
Egypt (0) 2 (Salah 53′, Trezeguet 100′)
Morocco (1) 1 (Boufal 7′)
Egypt: Abou Gabal (M. Sobhy 96′), Omar Kamal, Abdelmonem, Hegazy (Trezeguet 46′), El Fotouh, El Soleya, Ashraf (Alaa 90′), Elneny, Salah (Hamdi 120’+ 3), Marmoush (Zizo 80′), Mostafa Mohamed (R. Sobhi 111′).
Morocco: Bounou, Hakimi, Aguerd, Saïss, Masina, Amrabat, Amallah (Louza 86′), Barkok (Aboukhlal 104′), El-Haddadi (Tissoudali 111′), Boufal (Rahimi 66′), En-Nesyri (Mmaee 86′).