George Puscas' early penalty handed Reading a battling 1-0 Championship win at Charlton.
Romania forward Puscas slotted home from the spot just three minutes in, for his 13th goal of the campaign.
And that strike proved enough for the Royals to claim a second win in three matches, leaving Charlton frustrated with their lack of a cutting edge.
Chuks Aneke thought he had tapped home a first-half equaliser for the Addicks, but his effort was ruled out for offside.
The 27-year-old's barren scoring run has now stretched to 18 games and, despite another wholehearted effort, the ex-Arsenal trainee certainly appears short on confidence.
While Reading will be left to coast out the season in mid-table comfort, Charlton's fourth match without a win has Lee Bowyer's men still fretting for their safety.
Reading had the lead before Charlton had even settled.
Deji Oshilaja upended Andy Rinomhota in the box, leaving Puscas to bury the stonewall penalty without issue.
The Royals continued to dominate but without further reward, with Yakou Meite's teasing cross just avoiding skipper John Swift.
Rinomhota wriggled free smartly on the inside left, only to miscue his cross.
Meite should have doubled Reading's advantage when steaming onto a corner, but he failed to connect properly and instead thudded a weak header into the ground.
The 24-year-old quickly went closer with another header but this time his effort drifted just wide.
The visitors could easily have paid for that profligacy, but the offside flag saved them instead.
Aiden McGeady whipped a low effort on goal from 20 yards that proved sufficiently stinging that Rafael could only parry the ball back into the box.
But when Aneke tapped home, up popped the flag, and the strike was chalked off.
Macualey Bonne then tapped just wide from a smart McGeady cross, but Charlton failed to force a breakthrough, leaving Reading leading 1-0 at the break.
The Addicks seized control again after half-time but, despite sustaining impressive approach play, the hosts could not locate any killer instinct.
Aneke had a snap effort well blocked, while Bonne saw a header easily saved.
Alfie Doughty sneaked round the back to deliver a fine cross, but the onrushing Darren Pratley just failed to connect.
And when Aneke headed high and wide after working into space at the back post from a corner, Charlton started to realise this was not to be their day.
To add insult to injury for the hosts, Jake Forster-Caskey was booked for diving late on, when the Addicks thought he deserved a penalty instead.
What the managers said...
Charlton's Lee Bowyer: "It's disappointment, again, it's another game that we should have got something from and we haven't really done much wrong. They get a penalty early on, and then after that I thought we were the better side. I thought we created more clear-cut chances again. And decisions have cost us. The officials have cost us the game today, it's plain and simple.
"Chuks Aneke, his goal is a goal. And I said to the fourth official, 'the linesman can't just guess'. You have to be 100 per cent right on these decisions, these are big moments, there are careers on the line. My players give everything and we haven't got our rewards.
"If their penalty was a penalty then so was ours, because Jake got dragged to the floor, and it's a penalty. So you've got the offside and the penalty. Big decisions. I'd love to know what he puts in his report, because I know my report isn't going to be good for him. Something has to be done, because that wasn't up to scratch, all of them, the ref and the two linesmen."
Reading's Mark Bowen: "I felt a bit sorry for Lee Bowyer, it was one of those days when they were screaming for everything, and got nothing. There were decisions that I raised my eyebrows at too. Maybe on another day you get a few decisions that they didn't today.
"You hope that these things even out over the season but obviously it's tough for teams down at the bottom of the table. These things have happened to us in the past, and we have to take what we can get."