Both teams failed to score during 120 minutes of football before the Libyans earned a 5-4 victory from the spot.
Zimbabwe created the first meaningful chance of the tie in the 14th minute, but Mohamed Ghanudi failed to convert his headed effort from six yards out.
The Warriors continued to be the dominant force as the half wore on and had a further opportunity to break the deadlock in the 34th minute after Milton Ncube had picked out Simba Sithole. However, the striker couldn't keep his header on target.
After the restart Ncube had a chance himself to score with 60 minutes played, but his strike from distance was held by Libya goalkeeper Mohamed Abdaula.
As the match approached the 90th minute, Zimbabwe's Kudakwashe Mahachi was presented with an opening 14 yards from goal, but he shot over the crossbar.
The contest was ultimately decided by penalties, and it was Libya who went through when their goalkeeper Abdaula scored the decisive kick.
Libya twice had the chance to book their place in the final but failed to convert their kicks on both occasions. However, Abdaula eventually stepped up to seal his side's progress.