Match ends, Queens Park Rangers 3, Luton Town 2.
Queens Park Rangers held off a spirited fightback from Luton to chalk up their third straight league win.
Eberechi Eze fired the ball into the top corner from 25 yards for Rangers' opener before Nahki Wells doubled the lead, controlling Toni Leistner's ball over the top and slotting a low shot past Hatters goalkeeper Simon Sluga.
And the game looked to be over inside 30 minutes when Eze's through-ball put Wells clear to pass the ball into the net for his second.
But keeper Joe Lumley's misplaced pass fell to Harry Cornick, who lifted a shot in from 35 yards, and Cornick then teed up James Collins to set up a tense finale with a close-range finish.
Both teams went into the international break with back-to-back league wins, and it was Rangers who quickly rediscovered their momentum as they hit Luton with a lightning start.
Eze also twice went close soon after the second home goal, forcing Sluga to palm his shot on to the crossbar before planting a header against the same piece of woodwork just two minutes later.
The hosts looked to be cruising at 3-0 up, but a defence which has yet to keep a clean sheet this season, gifted the Hatters a way back into the match.
Having seen their commanding lead almost wiped out, Mark Warburton's side went straight back on the front foot, with Jordan Hugill spurning a hat-trick of chances, firing the best of them over the bar after more great work from Eze.
But with the game still in the balance, the Hoops were left hanging on, Yoann Barbet denying Collins with a last-ditch challenge before Isaiah Brown lashed an effort narrowly wide from distance.
The result extended Luton's winless record at Loftus Road to 16 matches, stretching back to October 1984, and dropped them to 16th, while Rangers moved up a place to seventh.
QPR manager Mark Warburton:
"As a team we gave a soft goal away. We're all human and we all make mistakes. That happens.
"To give them a glimmer of hope like that, we shot ourselves in the foot. Then they scored early in the second half and suddenly the whole dynamic of the game changes.
"We still missed chances in the second half and we've got to be more ruthless in front of goal because goals change games. But we got three points, really important, and three wins on the spin."
Luton boss Graeme Jones:
"Sometimes you win and sometimes you learn. Today I'm afraid it's time to learn. It's a learning curve. We started a little bit sluggish and naive.
"I've seen teams fold at that point - 3-0 down. But we took them to the last second of the game. We're learning and have done very well.
"But today we're losers and I don't like that. I let one or two know I didn't like what I saw in the first half. We need to learn and we need to improve and I am sure we will."
- 2KaneBooked at 47minsSubstituted forAmosat 69'minutes
- 4HallBooked at 90mins
- 19ChairSubstituted forPughat 74'minutes
- 21WellsSubstituted forMlakarat 66'minutes
- 22BoltonSubstituted forGallowayat 59'minutes
- 11ShinnieBooked at 65mins
- 25LuaLuaSubstituted forMoncurat 66'minutes
- 14CornickSubstituted forLeeat 79'minutes
- Jeremy Simpson
- Shots on Target
Second Half ends, Queens Park Rangers 3, Luton Town 2.
Offside, Queens Park Rangers. Eberechi Eze tries a through ball, but Jan Mlakar is caught offside.
Jordan Hugill (Queens Park Rangers) wins a free kick in the attacking half.
Foul by Isaiah Brown (Luton Town).
Attempt blocked. George Moncur (Luton Town) right footed shot from outside the box is blocked.
Grant Hall (Queens Park Rangers) is shown the yellow card for a bad foul.
Foul by Grant Hall (Queens Park Rangers).
Sonny Bradley (Luton Town) wins a free kick in the attacking half.
Attempt missed. Jan Mlakar (Queens Park Rangers) left footed shot from the left side of the box misses to the right. Assisted by Jordan Hugill with a headed pass.
Attempt missed. Jordan Hugill (Queens Park Rangers) right footed shot from outside the box is high and wide to the right. Assisted by Luke Amos following a fast break.
Foul by Jan Mlakar (Queens Park Rangers).
Andrew Shinnie (Luton Town) wins a free kick in the defensive half.
Attempt missed. Brendan Galloway (Luton Town) left footed shot from very close range is too high. Assisted by Sonny Bradley following a corner.
Attempt missed. Sonny Bradley (Luton Town) header from a difficult angle on the left is close, but misses to the right. Assisted by Andrew Shinnie with a cross following a corner.
Corner, Luton Town. Conceded by Yoann Barbet.
Attempt blocked. James Bree (Luton Town) right footed shot from the right side of the box is blocked. Assisted by Isaiah Brown.
Attempt saved. George Moncur (Luton Town) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Andrew Shinnie.
Attempt blocked. George Moncur (Luton Town) left footed shot from outside the box is blocked.
Corner, Luton Town. Conceded by Luke Amos.