An early converted penalty from George Puscas proved to be the only goal of the game as the Royals picked up their second consecutive away victory.
Puscas netted his 13th goal of the season from the spot after Andy Rinomhota was fouled just two minutes into the game.
The Royals held out to keep a third consecutive clean sheet and push themselves up the table with another away win.
Reading made just one change from their bore draw with Huddersfield on Tuesday, as Michael Olise replaced Jordan Obita in the starting eleven.
On their last trip to the Valley, the Royals stole all three points with a late winner in a seven goal thriller which saw them leave as 4-3 winners. However, in the teams last meeting earlier in the season in August, the Addicks took the points with a 2-0 win.
Reading made a superb start as they were awarded a penalty kick after just two minutes. John Swift played the ball into the box to find a positive run from Andy Rinomhota, who was tripped from behind as the referee pointed to the spot.
George Puscas stepped up to take up the penalty duties and confidently dispatched the spot kick straight down the middle to give his side an early lead.
Reading’s good start was almost undone when Puscas gave the ball away cheaply in his own half but Michael Morrison came to his rescue with a crucially timed sliding tackle to take the ball from Chuks Aneke who looked poised to shoot.
Mark Bowen’s side controlled the opening 20 minutes of the game and looked the stronger side. Michael Olise slipped the ball into the box to find Yakou Meite wide on the left who cut back and sent in a cross to try and find Puscas at the back post but slightly over hit his delivery.
Tom McInytre stayed switched on at the back and made a superb interception to cut out a dangerous through ball from Charlton as he showed his calmness on the ball at the back to retain possession and start an attack.
Reading wasted a good chance to double their advantage in the 28th minute as Swift found Meite with an inviting ball into the box but the Ivorian headed just wide after powerfully beating his marker in the box.
Having enjoyed a good spell, the Royals then found themselves on the back foot for the remaining 15 minutes of the half as the hosts came to life.
Aneke had the ball in the back of the net as he latched onto a rebound after Rafael made a good save from Aiden McGeady, but he was denied by the offside flag.
Just a minute later, Charlton should have brought themselves level through Macauley Bonne. McGeady put the ball across the box and from just a few yards out Bonne failed to make a good enough connection as the ball drifted wide.
Reading’s defensive resolve was tested with several crosses into the box, but they held firm to see themselves into the break with a one goal lead.
Bowen made one change going into the second half as Jordan Obita replaced Pele.
Charlton had a very early chance in the half as Aneke out muscled Osho in the box but got a small deflection on his shot to take it behind for a corner.
A second change from the Reading boss saw striker Sam Baldock come on in place of goalscorer Puscas in the 57th minute.
Reading continued to be on the back foot for much of the second half as Bowen made more changes with defender Omar Richards replacing Olise.
Aneke found himself free in the box but headed over the bar from close range as he stretched to try and reach a cross.
Bowen made more defensive changes as Osho and Swift were replaced by Liam Moore and Chris Gunter.
Reading had a chance to wrap up the points in the 76th minute when Meite found Richards with a low cross that he fired in, but Charlton were eventually able to clear the danger.
Charlton appealed for a penalty in the 84th minute when Forster-Caskey went to ground after a challenge from Obita, but the referee gave a free kick to Reading, and a yellow card to the Charlton man.
Lee Bowyer’s side continued to ask questions to the Reading defence but Bowen’s team held strong throughout the seven minutes of added time.
Captain Liam Moore got in the way of Jonny Williams’ long range effort to preserve the clean sheet as the Royals held out for victory.
Reading host Neil Warnock’s Middlesbrough on Tuesday (6pm) at the Madejski Stadium.
Charlton Athletic: Phillips, Matthews, Oshilaja, Lockyer, Pearce (c), Aneke, McGeady, Pratley, Bonne, Morgan, Cullen.
Subs: Amos, Purrington, Williams, Forster-Caskey, Sarr, Hemed, Field, Oztumer, Doughty.
Reading: Rafael, Osho, Morrison, McIntyre, Blackett, Rinomhota, Swift, Pele, Olise, Meite, Puscas.
Subs: Walker, Gunter, Miazga, Moore, Baldock, Obita, McCleary, Boye, Richards
Goals: Puscas (pen) 3′