The home side increased their lead after 63 minutes when substitute Claus Jensen curled a low shot past Peter Schmeichel.
But the turning point of the game came when Schmeichel denied Lisbie, Charlton's third goal and Keegan introduced substitute Ali Benarbia.
With his first touch of the ball Benarbia crossed for Marc-Vivien Foe to score.
City were then denied a penalty when Nicolas Anelka appeared to be brought down, but with just four minutes left Foe got his second when the Addicks failed to adequately clear Benarbia's corner.
Keegan was delighted with the way his team fought back, but thought they were only still in the match thanks to Schmeichel's world class saves.