Match ends, Charlton Athletic 1, Queens Park Rangers 0.
QPR's automatic promotion hopes took another blow as they were beaten by relegation battlers Charlton.
Johnnie Jackson headed in a stoppage-time winner from a tight angle at the far post to secure an Addicks victory.
Earlier on, Ravel Morrison - making his QPR debut after a loan move from West Ham - wasted his side's best chance when he shot wide.
Modibo Maiga also wasted a promising opening for the visitors before Jackson punished those misses with his goal.
The winner secured Charlton's first league win since Boxing Day, while QPR have have now lost three games in a row and are seven points off the top two with a game in hand.
Although QPR played the more intricate and neat football in the early stages, it was Charlton who could have gone ahead after 12 minutes.
A long range Jordan Cousins strike struck a post before Reza Ghoochannejhad's follow-up also hit the woodwork.
QPR defender Nedum Onuoha went over in the box under a Michael Morrison challenge, but failed to win a penalty.
Visiting manager Harry Redknapp tried to shake things up by replacing the ineffective Junior Hoilett with on-loan Manchester United youngster Will Keane.
Moments later Rangers squandered their best opening when an unmarked Morrison lashed a 14-yard shot well wide.
The visitors passed up another gilt-edged chance when substitute Maiga was gifted the ball by the Yohann Thuram-Ulien.
However, after going around the Charlton goalkeeper, the Rangers substitute lost control and the ball went out of play.
Those misses were compounded after Jackson's last-gasp goal left Charlton a point and a place from safety, with three games on hand over the four teams above them.
Charlton manager Chris Powell:
"This is the benchmark for what is to come over the next 17 games, I will make sure of that.
"One or two things went in our favour, which is about time because we have had many, many things go against us for some while now.
"People look for the captain to lead the team and with John it is his goals. It was apt he scored the goal.
QPR assistant manager Kevin Bond:
"If you start looking at the table mathematically then we don't get beat at Charlton.
"All we can do now is look at Leeds United and look to get back on track. Get back to where we were earlier in season.
"As soon as we start looking at bigger picture and promotion then we could be in trouble. We need to focus on next game and getting a point."
- 7GreenSubstituted forAjdarevicat 64'minutes
- 9ChurchSubstituted forHarriottat 89'minutes
- 8GhoochanneijhadSubstituted forTudgayat 64'minutes
- 4JacksonBooked at 90mins
- 10CarrollSubstituted forBenayounat 81'minutes
- 14DoyleSubstituted forMaigaat 70'minutes
- 23HoilettSubstituted forKeaneat 59'minutes
- Eddie Ilderton
- Shots on Target
Second Half ends, Charlton Athletic 1, Queens Park Rangers 0.
Foul by Armand Traore (Queens Park Rangers).
Lawrie Wilson (Charlton Athletic) wins a free kick in the defensive half.
Johnnie Jackson (Charlton Athletic) is shown the yellow card for excessive celebration.
Goal! Charlton Athletic 1, Queens Park Rangers 0. Johnnie Jackson (Charlton Athletic) header from the left side of the six yard box to the high centre of the goal. Assisted by Astrit Ajdarevic with a cross following a corner.
Corner, Charlton Athletic. Conceded by Robert Green.
Attempt saved. Astrit Ajdarevic (Charlton Athletic) left footed shot from outside the box is saved in the top right corner. Assisted by Diego Poyet.
Attempt blocked. Marcus Tudgay (Charlton Athletic) right footed shot from the centre of the box is blocked.
Attempt blocked. Johnnie Jackson (Charlton Athletic) left footed shot from the centre of the box is blocked. Assisted by Callum Harriott.
Substitution, Charlton Athletic. Callum Harriott replaces Simon Church.
Attempt missed. Jermaine Jenas (Queens Park Rangers) right footed shot from outside the box is high and wide to the left. Assisted by Aaron Hughes.
Attempt blocked. Simon Church (Charlton Athletic) left footed shot from the left side of the box is blocked.
Foul by Yossi Benayoun (Queens Park Rangers).
Jordan Cousins (Charlton Athletic) wins a free kick in the defensive half.
Substitution, Queens Park Rangers. Yossi Benayoun replaces Tom Carroll.
Corner, Charlton Athletic. Conceded by Nedum Onuoha.
Clint Hill (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Marcus Tudgay (Charlton Athletic).
Attempt blocked. Astrit Ajdarevic (Charlton Athletic) right footed shot from outside the box is blocked. Assisted by Rhoys Wiggins.