Match ends, Ipswich Town 2, Queens Park Rangers 1.
Luke Chambers' injury-time header gave Ipswich Town a dramatic victory as Jimmy Floyd Hasselbaink suffered his first defeat as QPR manager.
QPR winger Junior Hoilett's near-post header from a whipped delivery by Leroy Fer had the visitors ahead on the stroke of half-time.
After Daryl Murphy's initial effort failed to find the net, Jonathan Douglas scrambled home to level.
And Town captain Chambers headed home Freddie Sears' cross to win it.
The victory was Mick McCarthy side's third in four matches and saw them remain in the final Championship play-off berth, while Hasselbaink's side are eight points below them in 12th.
The R's felt aggrieved early on, claiming a penalty when striker Sebastian Polter went down in the box under a challenge from Christophe Berra in a first half of few chances.
But, after Town right-back Chambers should have at least hit the target with his header from Ainsley Maitland-Niles' corner, Hoilett nodded in his third goal of the season to put the visitors ahead on the stroke of half-time.
Ipswich improved after the break, and came close to an equaliser when Brett Pitman clipped the outside of the post with a bending strike.
Fer could have doubled QPR's lead when he rounded goalkeeper Dean Gerken after a jinking run, but Gerken got back to save before Cole Skuse cleared the loose ball off the line.
That was the closest QPR came to getting another, as Douglas equalised with an acrobatic third goal of the season before Chambers' emphatic intervention earned victory.
Ipswich manager Mick McCarthy:
"It was a real captain's performance by Chambo. He came in at the end and said sorry for not having his best game.
"But no-one is ever going to remember that - they are just going to remember who scored the winner.
"He has bought into playing right-back. Sometimes when people are asked to play in different positions, they do all right for a couple of games before becoming a square peg in a round hole and being left out.
"But I love the fact that he keeps going and gets into their box in the 92nd minute. He's stuck at it and done brilliantly."
QPR boss Jimmy Floyd Hasselbaink:
"I thought we were very well organised in the first half and we could not have scored at a better moment.
"We had a chance to make it 2-0 but at 1-0 you have to be resolute and defend properly until the end.
"I think our confidence and calmness went a little out the door and we need to improve on that.
"That is now two games where we have been winning 1-0 and I couldn't see us getting a draw or losing. We have to be more disciplined and sharp."
- 7Maitland-NilesSubstituted forFraserat 61'minutes
- 11PitmanSubstituted forOarat 68'minutesBooked at 88mins
- 9MurphySubstituted forVarneyat 90+1'minutes
- 5OnuohaBooked at 90mins
- 15KoncheskyBooked at 66mins
- 7PhillipsSubstituted forCheryat 83'minutes
- 10FerSubstituted forGuimaraes Cordeiroat 71'minutes
- 30Guimaraes Cordeiro
- Darren Drysdale
- Shots on Target
Second Half ends, Ipswich Town 2, Queens Park Rangers 1.
Goal! Ipswich Town 2, Queens Park Rangers 1. Luke Chambers (Ipswich Town) header from the centre of the box to the bottom left corner. Assisted by Freddie Sears with a cross.
Attempt missed. Junior Hoilett (Queens Park Rangers) right footed shot from outside the box misses to the left. Assisted by Alejandro Faurlin.
Substitution, Ipswich Town. Luke Varney replaces Daryl Murphy.
Nedum Onuoha (Queens Park Rangers) is shown the yellow card for a bad foul.
Ryan Fraser (Ipswich Town) wins a free kick in the defensive half.
Foul by Nedum Onuoha (Queens Park Rangers).
Corner, Queens Park Rangers. Conceded by Dean Gerken.
Attempt saved. Nedum Onuoha (Queens Park Rangers) header from the centre of the box is saved in the bottom right corner. Assisted by Alejandro Faurlin with a cross.
Tommy Oar (Ipswich Town) is shown the yellow card for a bad foul.
Foul by Tommy Oar (Ipswich Town).
Paul Konchesky (Queens Park Rangers) wins a free kick on the left wing.
Attempt missed. Ryan Fraser (Ipswich Town) right footed shot from outside the box is close, but misses to the left.
Substitution, Queens Park Rangers. Tjaronn Chery replaces Matthew Phillips.
Attempt saved. Junior Hoilett (Queens Park Rangers) right footed shot from outside the box is saved in the top left corner. Assisted by Karl Henry.
Attempt blocked. Nedum Onuoha (Queens Park Rangers) right footed shot from outside the box is blocked.
Christophe Berra (Ipswich Town) wins a free kick in the defensive half.
Foul by Sebastian Polter (Queens Park Rangers).
Goal! Ipswich Town 1, Queens Park Rangers 1. Jonathan Douglas (Ipswich Town) right footed shot from very close range to the bottom left corner.