Match ends, Nottingham Forest 0, Queens Park Rangers 1.
QPR secured a first away victory over Nottingham Forest in 35 attempts thanks to Toni Leistner's header.
Leistner headed in Luke Freeman's 45th-minute free-kick as Rangers scored with their first chance and then held out an increasingly frustrated home side.
Forest dominated possession throughout but created very little.
Adlene Guedioura's rasping 90th-minute strike almost salvaged a point but Rangers keeper Joe Lumley managed to tip it onto the bar and to safety.
Apart from that effort, the hosts were restricted to long-range strikes as they missed out on a chance to move into the play-off spots, remaining seventh, with Rangers one point further back in 10th.
QPR's success at the City Ground comes after 20 defeats and 14 draws from their previous 34 visits and was built on an impressive defensive display which was superbly led by Leistner.
Forest rarely threatened and were restricted to long-range efforts from Guedioura and Joe Lolley who were both narrowly off-target in the first half, while Tendayi Darikwa sent a shot across goal after the interval.
Rangers, managed by Steve McClaren against his former club, looked composed at the back and lively on the break but their main threat came from set-pieces.
Centre-back Leistner made the most of the best opportunity on offer, nodding in Freeman's cross from the right.
And they defended without too much alarm apart from a couple of goalmouth scrambles and a penalty claim in a fiery final quarter.
Forest boss Aitor Karanka:
"We need to forget this as soon as possible but also, at the same time, to know that if we continue in this way it will be impossible to win games.
"We had intensity at Derby and it's difficult to understand. The players should be committed, they should be supporting each other, but today we didn't see that.
"If we go in this way I do not like it at all. We looked like we had a mid-table team mentality. We need to go home and think about this because if we continue like this it will be difficult.
"I think we started the game thinking it was a friendly or a training session. We didn't approach the game in the way we had to."
QPR manager Steve McClaren:
"We all know the history. We know that this is a tough place to come and a very good Forest team, but I thought the players were magnificent.
"It was an unbelievable result for us and I'm so proud of the players. It was a win against a very, very good team.
"There was not one outstanding individual. Everyone did their jobs.
"In the last few weeks, against some good teams, we have defended so well. Joe Lumley made a great save that got us the points, but it was a great team effort which got us the points."
- 3FigueiredoSubstituted forHefeleat 75'minutes
- 18RobinsonBooked at 78mins
- 23LolleySubstituted forAnsarifardat 55'minutesBooked at 58mins
- 10CarvalhoBooked at 43mins
- 11OsbornSubstituted forMurphyat 55'minutes
- 31Bastião Dias
- 21LuongoBooked at 65mins
- 10EzeSubstituted forHallat 88'minutes
- 32WellsSubstituted forSmithat 86'minutes
- Gavin Ward
- Shots on Target
Second Half ends, Nottingham Forest 0, Queens Park Rangers 1.
Corner, Nottingham Forest. Conceded by Josh Scowen.
Attempt blocked. Adlène Guédioura (Nottingham Forest) right footed shot from outside the box is blocked. Assisted by Saidy Janko.
Attempt saved. Daryl Murphy (Nottingham Forest) header from the centre of the box is saved in the centre of the goal. Assisted by Saidy Janko with a cross.
Adlène Guédioura (Nottingham Forest) wins a free kick on the right wing.
Foul by Josh Scowen (Queens Park Rangers).
Attempt missed. João Carvalho (Nottingham Forest) right footed shot from outside the box is high and wide to the right. Assisted by Jack Robinson.
Offside, Nottingham Forest. Adlène Guédioura tries a through ball, but Lewis Grabban is caught offside.
Attempt saved. Adlène Guédioura (Nottingham Forest) right footed shot from outside the box is saved in the top left corner. Assisted by Saidy Janko.
Substitution, Queens Park Rangers. Grant Hall replaces Eberechi Eze.
Attempt missed. Lewis Grabban (Nottingham Forest) header from the centre of the box misses to the right. Assisted by Michael Hefele with a cross.
Offside, Queens Park Rangers. Eberechi Eze tries a through ball, but Matt Smith is caught offside.
Substitution, Queens Park Rangers. Matt Smith replaces Nahki Wells.
Foul by Jack Colback (Nottingham Forest).
Nahki Wells (Queens Park Rangers) wins a free kick in the defensive half.
Attempt blocked. Lewis Grabban (Nottingham Forest) header from the centre of the box is blocked. Assisted by Saidy Janko with a cross.
Attempt missed. Tendayi Darikwa (Nottingham Forest) right footed shot from the right side of the box misses to the left.
Saidy Janko (Nottingham Forest) wins a free kick in the defensive half.
Foul by Pawel Wszolek (Queens Park Rangers).