A tense semi-final in Libreville had ended 1-1 after 90 minutes and extra time, with Mohamed Salah's superb 66th-minute opener for the Egyptians quickly cancelled out by Aristide Bance for Burkina Faso.
Abdallah El Said missed Egypt's first penalty in the shoot-out but El Hadary kept the Pharaohs in it when he saved from opposing goalkeeper Herve Koffi, and the 44-year-old veteran then denied Traore from the last kick.
For Egypt, the record seven-time champions of Africa, the win completes a remarkable journey all the way to the final in their first appearance in the tournament after a seven-year absence.
They will play Cameroon or Ghana in Gabon's capital on Sunday as they look to reclaim a trophy they had won three times in a row between 2006 and 2010 before their fall from grace.
Cameroon and Ghana meet in Franceville in the second semi-final on Thursday.
At a Stade de l'Amitie that was once again a long way from being full, Burkina Faso enjoyed the better of the game for long spells but came up against an Egypt side transformed under Argentine coach Hector Cuper.
The Pharaohs had not conceded a goal at this Cup of Nations coming into this last-four tie, with a well organised defence complemented by the extraordinary El Hadary, the oldest player ever to appear at the Cup of Nations.
Without the injured Arsenal midfielder Mohamed Elneny, Egypt handed a start to Mahmoud Kahraba, who had come on to get the winner in the quarter-final against Morocco, while Bance came into the Burkina Faso starting line-up.
With him leading the line the Stallions were the better side in the first half and El Hadary had to save from Blati Toure while the impressive Prejuce Nakoulma sent a rising effort over the bar.
Trezeguet and Kahraba both threatened Koffi's goal as the first half ended goalless, while El Hadary batted away another free-kick from Traore after the restart as he continued to frustrate Burkina Faso.
And it looked set to be another classic smash and grab act from the Egyptians as they opened the scoring just before the midway point in the second half.
After some patient build-up play, Ahmed Elmohamady's ball into the box found Kahraba, who controlled and laid it off for Roma winger Salah to blast a first-time strike high into the net.
Steeve Yago's backheel found Charles Kabore and the captain's flighted ball was controlled and smashed home from close range in one lighting-fast action by Bance, ending El Hadary's remarkable record of invincibility at the tournament at just short of 11 hours.
El Hadary then needed to be alert to tip over from substitute Banou Diawara in stoppage time, ensuring the game went to the extra period and then penalties.