Emmanuel Mayuka's second-half strike was enough to send Zambia through to the final of the African Nations Cup as they upset ten-man Ghana in Bata.
Star Ghana striker Asamoah Gyan was made to rue his seventh-minute penalty miss, and a host of other chances, as the unfancied Zambians reached the final for the first time in 18 years.
Substitute Mayuka curled home his winner from the edge of the area with 12 minutes remaining and Ghana's hopes of a comeback were all but ended with the dismissal of Derek Boateng soon after.
Zambia will meet the winner of this evening's other semi-final between Mali and Ivory Coast in Sunday's final in Libreville.
That match is set to provide an emotional stage for the Zambians as they return to the city associated with one of the country's most most tragic events.
Libreville was the city that a plane carrying the Zambian national side refuelled in before crashing into the Atlantic Ocean in 1993, killing all 30 people on board.
The Copper Bullets looked certain to go behind early in today's match when Davis Nkausu tripped Kwadwo Asamoah in the area to concede an early penalty.
Gyan wasted the opportunity, though, as his spot-kick was tame enough to allow Kennedy Mweene to save to his left.
Gyan then forced another save from the Zambia goalkeeper moments later before another mis-hit effort was more comfortably dealt with.
Andre Ayew's free-kick met with an air-shot from his brother Jordan before Zambia missed a glorious chance on the half-hour, when Christopher Katongo was brilliantly played in behind the defence by Rainford Kalaba but scuffed his shot wide.
It mattered not, though, as Mayuka proved his side's match-winner with time ticking down in the game when he turned and perfectly placed his shot beyond a diving Adam Larsen.
Ghana then had Boateng sent off for a second caution with six minutes to go as they crashed out at the semi-final stage for the third consecutive tournament.