The Falcons of Jediane had qualified for the last eight after wins over Guinea and Mauritania before managing a goalless draw against hosts Morocco to finish as runners-up in Group A.
On the other hand, the Chipolopolo topped Group B after wins over Uganda and Ivory Coast before registering a 1-1 draw against Namibia.
Against Chipolopolo at the Stade Marrakech, Sudan took the lead just after the half-hour mark as Maki Bakhit Saifeldin scored the only goal of the game.
Sudan coach Zdravko Logarusic was elated at the final whistle and warned that they are in Morocco for the trophy. “That was another solid display from my lads and this goes to clearly show our intentions to win the trophy. We came here to win and not just to compete and we are ready to face any team in the semis.”
In the semis of the tournament for locally-based players, Sudan will now take on the winner between Nigeria and Angola, who face off in the quarters on Sunday.
Zambia started the game in Marrakech promisingly with some early chances for Augustine Mulenga and Kondwani Mtonga. In the earlier rounds, Zambia had played an attractive style of football that saw them tipped as favourites to progress and they started the game in a similar style.
After 18 minutes, Zambian striker Mulenga's long-range shot was deflected just wide by Sudan defender Omer Suleiman Koko. Sudan keeper Akram made a good save from a Kondwani Mtonga's header across goal as he connected with a corner from Fackson Kapumbu.
Sudan, who played a very physical game, then took a deserved lead after Akram launched a lock goal-kick that was shielded by Saifeldin, who then held off John Mwengani as he turned past him to power home past Zambia keeper Toaster Nsabata.
Sudan became the second team to make it into the semi-finals after Morocco booked their last four spot with a 2-0 win against Namibia earlier on Saturday.
At the last edition held in Rwanda in 2016, Zambia also crashed out in the quarters after losing 5-4 on penalties to Guinea. The quarter-finals will continue on Sunday as Nigeria will face Angola in Tangier while Congo will battle Libya in Agadier.