After 120 minutes produced no goals, the game headed for kicks from the penalty mark.
Goal keeper Ismail Watenga saved Panom Gathuoch’s first kick from the penalty mark and the rest of the Ugandan efforts were well converted through Muzamiru Mutyaba, Denis Okot, Isaac Muleme, Joseph Ochaya and skipper Faruku Miya.
The Cranes who took the match with a 5-3, are seeking a 14th CECAFA title and will face regional rivals Rwanda in the finals on Saturday.
Both teams will be taking part in the 2016 CHAN Finals in Rwanda.
Rwanda beat the 2013 losing finalists Sudan 4-2 on penalties after 120 minutes had ended 1-1.
Uganda Cranes XI that played Ethiopia: Ismail Watenga (GK), Bernard Muwanga, Denis Okot, Richard Kasagga, Joseph Ochaya, Murushid Juuko, Ivan Ntege, Frank Kalanda, Erisa Sekisambu, Ceasar Okhuti and Miya Faruku (Capt).
Subs: Mathias Kigonya (GK), Keziron Kizito, Joseph Nsubuga, Nelson Senkatuuka, Shafiq Bakaki, Isaac Muleme, Muzamir Mutyaba, Hassan Dazol Waswa, James Alitho (GK).