The match ended goalless after 90 minutes in a game short on clear chances.
In the previous edition, the two sides also met at the same stage, with Zamalek advancing after a 5-4 penalty shootout victory following a 1-1 draw.
This time, the White Knights repeated the feat against the African champions, who are participating in the competition by invitation.
All players converted their penalties until Pyramids substitute Mostafa Ziko missed the final kick, sending Zamalek through to the final.
Interim coach Ahmed Abdel-Rouf made several changes to Zamalek’s starting lineup, handing starts to midfielders Ahmed Rabie and Mohamed Shehata, fullback Ahmed Fatouh and striker Amr Nasser.
Pyramids, meanwhile, fielded their regular lineup, with Karim Hafez replacing injured Burkinabe midfielder Blati Touré.
The first half offered little excitement, with both teams struggling to create chances.
Zamalek’s Palestinian striker Oday Dabbagh and Pyramids defender Mahmoud Marei were both forced off through injury, replaced by Ahmed Sherif and Ali Gabr respectively.
Goalkeeper Mohamed Awad kept Zamalek level early in the second half, denying Ahmed Atef’s close-range header.
Tunisian forward Seif Jaziri squandered a golden chance three minutes from time after being played through by Abdallah El-Said, but fired wide.
At the other end, Pyramids’ Brazilian winger Everton da Silva missed a last-gasp opportunity to win it, blasting over the bar with the goal at his mercy.
The game went to penalties, where Zamalek held their nerve to win 5-4 and book a place in the final against Ahly, who earlier defeated Ceramica Cleopatra 2-1.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)
Short link: