A deflected opener from Jonathan Leko and a penalty from Lyle Taylor condemned Reading to their third Championship defeat of the season.
Charlton took the lead through Leko after George Puscas missed two big chances for Reading in the first half.
Taylor then doubled the Addicks lead as he calmly converted from the penalty spot after Pele had fouled Chuks Aneke to end Reading’s resurgence in form.
Reading started the livelier of the two sides and won the first corner of the game as John Swift took a shot from distance which was deflected behind.
Lucas Joao met Swift’s resulting corner at the near post and flicked the ball onto the back post where it just evaded the run of Michael Morrison, going behind for a goal kick.
Charlton had a big chance to take the lead just five minutes in as Jonathan Leko cut into to the box and saw his shot saved by Rafael at his near post and Reading rode their luck to scramble away Lyle Taylor’s follow up off the line.
Having survived a near scare, Reading began to take control of the game as Swift’s 25-yard free-kick took a wicked deflection and almost caught Charlton goalkeeper Dillon Phillips off guard, but went inches wide.
Both sides picked up a booking in the first half as Sam Field cynically brought down Andy Yiadom on the wing before Pele was cautioned for breaking up a Charlton counter on the halfway line.
Having met a Tom McIntyre flick on from a free kick, Joao tried his luck with a spectacular overhead kick but his attempt flew a few inches over the bar and wide of the target.
George Puscas then went agonisingly close to breaking the deadlock as Swift found Omar Richards on the wing with an outside of the foot pass, who then crossed for the Romanian striker but his unorthodox attempt bounced off the crossbar.
The Addicks began to grow into the half after some early pressure from the Royals as both sides struggled to create too many clear cut opportunities after an entertaining opening 25 minutes.
With the half drawing to a close, Puscas had a golden opportunity to put the Royals in front as Ovie Ejaria led a Royals counter attack and his through ball deflected into the path of Puscas. But Phillips defended his goal brilliantly as he saved the forward’s one-on-one effort to keep the sides level going into half-time as Puscas was left to rue another missed chance.
The visitors took the lead just six minutes after the break as Leko cut inside onto his left foot and hit a shot from 20 yards which took a cruel deflection and beat Rafael as it squirmed into the corner.
The Royals almost found an instant response as a last ditch tackle prevented Joao from meeting Omar Richards’ dangerous cross.
Leko came close again as he cut inside into the box as he met Jonny Williams’ pass but his effort crashed into the side netting.
With 65 minutes gone, Jose Gomes made his first tactical switch of the game as forwards Lucas Boye and Yakou Meite came on to replace the wing-backs Andy Yiadom and Omar Richards.
Liam Moore then made a vital block to keep out the dangerous Leko as Charlton burst forward, exploiting the space in behind the Reading defence as they searched for an equaliser.
Charlton continued to find space behind the Reading defence and missed a big chance to double their lead as Conor Gallagher scuffed his effort wide after finding some space in the box.
The Addicks were then awarded a penalty in the 78th minute as Chuks Aneke went down under the clumsy challenge of Pele as the referee pointed to the spot.
Lyle Taylor strolled up calmly to the spot and sent Rafael the wrong way as he slotted the ball into the bottom right corner to double Charlton’s advantage.
Reading lacked ideas as they tried to find a way back into the game but
Phillips did have to keep alert to get fingertips to keep out Swift’s free kick
with just a few minutes left on the clock.
Charlton kept their clean sheet intact as a driven cross from Yakou Meite
was unable to be converted by a Reading shirt as their frustrating second half continued.
A lacklustre second half performance saw Reading suffer their second home defeat of the season having recently enjoyed a better run of form. The Royals drop down to 16th in the table heading into the international break.
Jose Gomes’ side face a trip to the Riverside to play Middlesbrough in their
next league outing on Saturday, September 14.
Reading: Rafael, Yiadom (Boye 65′), Moore (c), McIntyre, Morrison, Richards (Meite), Pele, Swift, Ejaria, Puscas, Joao.
Subs: Rinomhota, Boye, Meite, Virginia, Adam, Osho, Barrett.
Charlton Athletic: Phillips, Pearce (c), Taylor, Lockyer, Field, Solly, Cullen, Leko, Purrington, Williams, Gallagher.
Subs: Amos, Aneke, Pratley, Sarr, Hemed, Oztumer, Lapslie.
Goals: Leko 51′, Taylor 80′ pen.