Match Report | QPR 3-2 Cardiff City
Dominic Ball's last-ditch strike denied the Bluebirds a point at the Kiyan Prince Foundation Stadium.
A Joe Ralls brace had seen the Bluebirds bravely battle back against QPR, having trailed 2-0 at the break. However, the hosts' injury-time winner kept the spoils in West London.
The Bluebirds lined up with just one change from the side that had drawn 1-1 at Derby County on Wednesday.
Josh Murphy came in for Junior Hoilett, with Lee Tomlin fit enough to take his place on the substitutes bench.
It was the home side that did the early running in West London. Indeed, they had a clear-cut chance to take the lead after just three minutes.
Former City loanee Albert Adomah went clean through on goal, but should have done better with his effort, which was easily palmed behind by Alex Smithies.
Five minutes later, the Bluebirds had their skipper to thank, as Lyndon Dykes looked certain to head home at the back post, only for Sean Morrison to divert the ball wide.
The hosts did find the opener after 15 minutes – Tom Carroll and Adomah combining for Ilias Chair to finish into the far corner.
And just before the half-hour mark, they doubled their advantage. This time, Chair turned provider for Todd Kane to volley back across goal past Smithies.
The Bluebirds looked for a response through a Will Vaulks long throw – the Hoops coping with Morrison's flick on, before Marlon Pack fired wide from distance.
But it could have been three at the interval, as Chair placed an effort just past the post before the referee's whistle.
Within five minutes of the restart, City had a lifeline.
Yoann Barbet brought down Kieffer Moore as the Bluebirds' no. 10 drove into the area. The referee pointed to the spot, with Joe Ralls making no mistake with the resulting penalty.
The half-time introduction of Junior Hoilett had seen a change of shape for the Bluebirds, which was immediately beginning to pay dividends.
Hoilett himself twice went close, heading straight at Seny Dieng before seeing a long-range effort whistle past the post, while Sheyi Ojo also struck just wide of the Hoops' goal.
Lee Tomlin, making his return off the bench on 68 minutes, nearly found a leveller as he curled just wide of the top corner from 20 yards.
But five minutes from time, City were right back in it. Conor Masterson clearly handled the ball while competing with Moore and Ralls stepped up for a second spot-kick. This time, Dieng guessed the right way, but City's no. 8 kept his composure to finish on the rebound.
With the wind in their sails, the Bluebirds looked the most likely to win it. With several waves of City attacks, Moore went the closest as he arrowed an effort across goal.
But, out of the blue, the hosts took the spoils in injury time. Dominic Ball took aim from distance and rifled his effort into the top corner to snatch victory.
QPR: Dieng, Kane, Hämäläinen, Barbet, Masterson, Cameron (C), Carroll, Chair (Ball 81), Osayi-Samuel (Bonne 90+5), Adomah (Willock 63), Dykes.
Subs not used: Kelly, Kakay, Bettache, Kelman.
Cardiff City: Smithies, Bacuna (Harris 90+5), Morrison (C), Nelson, Bennett, Vaulks (Hoilett 46), Pack, Ralls, Ojo, Murphy (Tomlin 68), Moore.
Subs not used: Phillips, Bamba, Bagan, Whyte.