Zambia will play Sudan in Sunday's final
Sudan stunned Uganda 6-5 on penalties on Friday to set up a Cecafa Cup final against Zambia in Ethiopia on Sunday.
The game was tied at 2-2 after extra time.
Zambia, who are appearing at the tournament as guests, qualified for the final after beating Rwanda 1-0 in the first semi-final match of the day.
Eldor Badreldin was the hero for Sudan after converting their seventh kick to hand them the 6-5 win.
Badreldin was on hand to give the Sudanese the lead in regulation-time scoring with just after 60 seconds into the game.
The Cranes rallied and drew level fifteen minutes later thanks to a Vincent Kayinzi strike.
Yousuf Aladin restored Sudan's lead in the 63rd minute but substitute Geoffrey Sserenkuma equalised to send the game into extra time.
Zambia won the semi-final match thanks to a 24th minute goal scored by striker Ignatius Lwipa.
The Chipolopolo could have doubled their lead ten minutes later but Raymond Kabala's strike from close range was blocked.
Rwanda improved as the game wore on with Kizito Manfred forcing a good save from the Zambian keeper late in the game.