Liverpool 2-1 Charlton
Liverpool stunned Charlton with two goals in the closing five minutes to keep alive their dreams of playing in the Champions League.
After Sami Hyypia had brought the Reds level, Steven Gerrard's long-range effort brought the Anfield faithful to their feet.
The result was very hard on Charlton, who had controlled the game for the first 80 minutes and had deservedly taken the lead through Shaun Bartlett.
The visitors, who had been heavily criticised by manager Alan Curbishley after their 2-0 home defeat by Birmingham on Saturday, produced a measured performance to largely stifle Liverpool's attack.
For the winners, the result brings them to within a point of Newcastle in fourth place and keeps them just two behind Chelsea, with Everton seemingly out of contention for the Champions League places.
It was a familiar story for Liverpool during the first half - with Charlton concentrating their defensive work on Michael Owen and the Reds having few ideas.
Their best opening came courtesy of Owen, who swivelled in the penalty area before drilling a left-footed shot which Dean Kiely saved.
47 mins: Bartlett puts Charlton in front 0-1
86: Hyypia equalises from Riise's corner 1-1
90:Gerrard's mazy run and shot gives Reds win 2-1
At the other end, Kevin Lisbie's header from Radostin Kishishev's chipped cross forced Jerzy Dudek into his only first-half save.
Liverpool's abject performance was summed up by Charlton taking the lead in the third minute of the second half - Djimi Traore falling flat on the floor allowing Bartlett to move into the penalty area unopposed and slot the ball past Dudek.
Milan Baros had replaced Emile Heskey at the break to try and get the Reds attacking with some kind of conviction.
It was Baros who had the best immediate chance to equalise for Liverpool, with a corner flicked on to his head, but the young Czech Republic international put his effort over the crossbar.
With less than a quarter of the match remaining, Liverpool made a double change, taking Danny Murphy and El-Hadji Diouf off and bringing on Vladimir Smicer and Bruno Cheyrou.
Murphy's reaction to being substituted encapsulated the home side's display up to that point as he engaged in a heated row with assistant manager Phil Thompson.
The Reds' equaliser came from nowhere as Hyypia headed home after Gerrard had flicked on Riise's corner.
Dudek then made a tremendous save from susbtitute Jason Euell - shortly after Gerrard scored the winner in the final minute of normal time.
The midfielder, who had had a poor game, took on the Charlton defence before shooting across Kiely to crown an unlikely comeback.
Liverpool: Dudek, Carragher, Hyypia, Traore, Riise,
Diouf (Cheyrou 74), Hamann, Gerrard, Murphy (Smicer 74),
Heskey (Baros 45), Owen.
Subs not used: Arphexad, Diao.
Charlton: Kiely, Young, Rufus, Fortune, Powell, Kishishev, Jensen, Parker (Robinson 83), Konchesky, Bartlett (Euell 77), Lisbie (Johansson 90). Subs not used: Roberts, Bart-Williams.
Referee: S Dunn (Avon).