Match ends, Charlton Athletic 3, Reading 4.
Deniss Rakels' 92nd-minute goal handed Reading victory over Charlton, despite Yaya Sanogo's treble for the Addicks.
Yann Kermorgant put Reading ahead after heading in Ola John's cross but Sanogo levelled after Marco Motta teed him up.
The Royals led again when Hal Robson-Kanu cut back for Kermorgant to curl in, before John slipped home for 3-1.
Sanogo, on loan from Arsenal, then headed his second before tapping in for his hat-trick, only for Rakels to win it for Reading in stoppage time.
Had Charlton held on to draw, they would have lifted themselves off the bottom of the Championship table by virtue of Bolton losing to Burnley.
Jose Riga's side instead remain bottom on goal difference, while Reading move up three places to 12th thanks to Rakels' late heroics.
A lively opening seven minutes saw Stephen Quinn hit the crossbar for the visitors with a fierce 18-yard drive, before Kermorgant and Sanogo scored their first goals since joining Reading and Charlton respectively.
Kermorgant, who scored 32 goals in 96 appearances for Charlton in a three-year spell with the club, netted twice in a dominant first-half display for the Royals.
The hosts thought they had rescued a valuable point after 84 minutes when Sanogo was on hand to poke in after Reading goalkeeper Ali Al Habsi parried Johann Berg Gudmundsson's shot.
But Rakels latched on to Jordan Obita's free kick to steer the ball past Stephen Henderson in a heartbreaking end for the Addicks.
Charlton Athletic head coach Jose Riga:
"I knew the story of Sanogo and I'm happy for him that he can show his value today. Of course you have to show you can do it for more than one game but I'm happy. I saw immediately during the training sessions the quality he has.
"When you arrive from France early as he did, at 19 to 20, to a big team like Arsenal, it's quite difficult. My discussion with him was he can come here and take what he can from this challenge."
"We had to readjust the side again, like I've had to do all the games since I was here. It's about defending more in an effective way. If it's a lesson for the players, it's a good lesson."
Reading manager Brian McDermott:
"First half we were very good and played some fabulous football. The three goals were top drawer.
"We had a half hour spell where we were all over the place, quite frankly.
"We've had a strong conversation because we want to get better and learn from our mistakes."
- 47MottaSubstituted forHarriottat 77'minutes
- 22BaSubstituted forBergdichat 45'minutes
- 7Berg GudmundssonBooked at 82mins
- 25SanogoSubstituted forGhoochannejhadat 89'minutes
- 26Al Habsi
- 6NorwoodSubstituted forWilliamsat 65'minutesBooked at 76mins
- 21QuinnSubstituted forRakelsat 87'minutes
- 20JohnSubstituted forMcClearyat 70'minutes
- Nigel Miller
- Shots on Target
Second Half ends, Charlton Athletic 3, Reading 4.
Offside, Reading. Yann Kermorgant tries a through ball, but Deniss Rakels is caught offside.
Goal! Charlton Athletic 3, Reading 4. Deniss Rakels (Reading) right footed shot from the right side of the six yard box to the bottom left corner. Assisted by Jordan Obita with a cross following a set piece situation.
Deniss Rakels (Reading) wins a free kick on the left wing.
Foul by Rod Fanni (Charlton Athletic).
Substitution, Charlton Athletic. Reza Ghoochannejhad replaces Yaya Sanogo because of an injury.
Substitution, Reading. Deniss Rakels replaces Stephen Quinn.
Chris Gunter (Reading) wins a free kick on the right wing.
Foul by Zakarya Bergdich (Charlton Athletic).
Offside, Reading. Garath McCleary tries a through ball, but Jordan Obita is caught offside.
Goal! Charlton Athletic 3, Reading 3. Yaya Sanogo (Charlton Athletic) right footed shot from the centre of the box to the bottom right corner.
Attempt saved. Johann Berg Gudmundsson (Charlton Athletic) left footed shot from outside the box is saved in the bottom right corner.
Johann Berg Gudmundsson (Charlton Athletic) is shown the yellow card for a bad foul.
Michael Hector (Reading) wins a free kick in the defensive half.
Foul by Johann Berg Gudmundsson (Charlton Athletic).
Substitution, Charlton Athletic. Callum Harriott replaces Marco Motta.
Danny Williams (Reading) is shown the yellow card for a bad foul.
Foul by Danny Williams (Reading).
Yaya Sanogo (Charlton Athletic) wins a free kick in the attacking half.