Playing at home, Berkane shocked record three-time winners CS Sfaxien 3-0 in the semi-final second leg to qualify 3-2 on aggregate while Zamalek squeezed through 1-0 overall after a 0-0 draw at Etoile Sahel.
Berkane, who will be appearing in an African final for the first time, host the first leg in Morocco on May 19 with the return match in Egypt seven days later.
Zamalek, the equal third most successful club in CAF competitions with nine titles, are hoping to end a 16-year African trophy drought.
The first half collapse of Sfaxien in Berkane was unexpected given they had conceded only three goals in six previous away outings in the African version of the UEFA Europa League.
Togolese Kodjo Fo-Doh Laba converted an eighth-minute penalty to get Renaissance back into the tie after they performed poorly in a 2-0 first leg loss last weekend.
Another set-piece brought the second Berkane goal on 19 minutes as right-back Omar Nemsaoui hammered a rising free-kick past Aymen Dahmen to tie the aggregate score.
The goal that won the semi-final arrived 31 minutes into the opening half as Burkinabe centre-back Issoufou Dayo pounced on a loose ball and scored from a tight angle.
Despite being overrun by Berkane, vastly more experienced Sfaxien would have regained the lead on aggregate had they scored an away goal.
– Goalkeeper sent off –
They came closest to doing so at the 15,000-seat Stade Municipal with an hour gone when an Alaa Marzouki volley from inside the box flew just wide of the far post.
Berkane will hope to become the fifth Moroccan winners of the Confederation Cup after FAR Rabat (2005), FUS Rabat (2010), MAS Fes (2011) and Raja Casablanca (2018).
Zamalek had to play five minutes of stoppage time with 10 men after goalkeeper Mahmoud ‘Gennesh’ Abdel Rahim was sent off at the Stade Olympique in Mediterranean resort Sousse.
After delaying play several times due to injuries, Abdel Rahim was shown a second yellow card followed by a red when he handled outside the box.
Zamalek had used their three substitutes so striker Omar el Said replaced Abdel Rahim and did not need to make any saves in a match that stretched to 99 minutes.
A cagey clash between two of the best known clubs in north Africa was often scrappy and lacked rhythm with the Democratic Republic of Congo referee constantly blowing for fouls.
Youssef ‘Obama’ Ibrahim of Zamalek squandered the best first-half chance with a scuffed attempt from close range.
When Etoile did get the ball past Abdel Rahim 10 minutes from time through captain Yassine Chikhaoui, Tunisia-born Zamalek defender Hamdi Nagguez cleared.
Would you like to place a soccer bet? Click here to get started in 3 easy steps.