African Champions League holders Entente Setif of Algeria dropped to third in Group B as they lost 2-0 in Sudan to Al Merreikh.
In the other Group B game on Friday USM Alger beat their Algerian rivals Mouloudia El Eulma 1-0 to earn a place in the semi-finals.
Also on Friday in Group A Al Hilal of Sudan lost their first match of the group stages 1-0 to Moroccan visitors Moghreb Tetouan.
On Saturday DR Congo's TP Mazembe took advantage of Hilal's loss to move to the top of Group A with a 1-0 win over visiting Smouha of Egypt.
Champions Setif played the whole of the second half against Merreikh with 10 men after defender Ryad Kenniche was sent off in added time at the end of the first period.
Al Merreikh had taken the lead four minutes earlier through Ala'a Eldin Yousif from the penalty spot following a foul by Setif keeper Sofiane Khedairia.
The win was sealed in injury time at the end of the match when Ghanaian Augustine Okrah turned in a cross from the left.
Mohamed Meftah was the hero for USM Alger as he headed home the only goal of the game against Eulma four minutes into the second half.
The results mean USM Alger top the group with 12 points, Merreikh are second with seven, Setif have four points and Eulma are yet to win a point.
Setif will be eliminated if Merreikh win either of their two remaining matches.
Moghreb Tetouan won for the first time thanks to a 24th-minute penalty converted by Ahmed Jahouh in their match against Al Hilal.
Hilal almost levelled when a goal-bound Salah Jizoli shot was cleared by Younes Bellakhdar.
The Sudanese club then wasted a great chance to equalise 17 minutes from time.
A Tetouan defender handled inside the box, but Senegalese Souleymane Cisse had his penalty kick brilliantly parried to safety by goalkeeper Mohamed El Yousfi.
Ivorian Roger Assale scored for TP Mazembe early in the second half as he connected with a corner to give his side all three points against Smouha.
The results mean that Mazembe top Group A with eight points, Tetouan and Hilal both have five with Smouha bottom with just three so far.