Match ends, Queens Park Rangers 2, Cardiff City 2.
Scott Malone's stunning late goal helped Cardiff come back from two goals down to earn a draw at QPR.
The home side took the lead against the run of play when an unmarked Clint Hill headed in a Matt Phillips corner.
Another corner appeared to hit defender Hill's arm before it was turned in by Charlie Austin from close range.
Cardiff pulled one back with Sean Morrison's stooping header, and Malone equalised when he fired in a dipping 22-yard strike.
QPR boss Chris Ramsey will rue his side's failure to make the most of their counter-attacks as the visitors pushed forward for a leveller.
Austin had a shot cleared off the goal-line, while Matt Phillips ran on to a knockdown and raced at the Cardiff goal only to have his angled shot saved by keeper Simon Moore.
Jay Emmanuel-Thomas was also guilty of missing a late chance for the home side just before Malone's eye-catching strike.
Cardiff will feel a point is the least they deserved not just because QPR's debateable second goal was allowed, but that they conceded both goals when they were on top of proceedings at Loftus Road.
QPR boss Chris Ramsey:
"It's not a good result. We should have taken the points.
"Even before we gave away the two goals we had lots if chances to seal the game and it should have been over well before they scored.
"If Charlie's chance goes in - and the guy's done magnificently to clear it - it would have taken the sting out of them. We also had a one-versus-one just before they scored and Matt Phillips had a one-versus-one as well.
"Cardiff were fantastic in possession and looked dangerous. But we've had balls flashing across the goal and when you haven't taken those chances you get punished in the end.
"We need to work on getting more bodies into the box but even when we did that we didn't take our chances."
Cardiff manager Russell Slade:
"We all went out for a walk this morning and Scott told me he always scores at Loftus Road. I thought, 'Chance would be a fine thing'.
"It was a great finish and gave us something we deserved. They were 2-0 up against the run of play and were fortunate for the second goal - it was definitely handball.
"We were disappointed with the goals we conceded from set plays but between the boxes we had a good structure, good movement and made good choices.
"We just needed a goal - and we got one from a set-play ourselves. I thought our application and attitude were first class."
- 8CherySubstituted forDoughtyat 55'minutes
- 11GladwinSubstituted forEmmanuel-Thomasat 76'minutes
- 9AustinSubstituted forPolterat 68'minutes
- 13PilkingtonSubstituted forAmeobiat 82'minutes
- 15DikgacoiSubstituted forNooneat 69'minutes
- 19RevellSubstituted forJonesat 59'minutes
- 3da Silva
- Simon Hooper
- Shots on Target
Second Half ends, Queens Park Rangers 2, Cardiff City 2.
Offside, Cardiff City. Sammy Ameobi tries a through ball, but Joe Mason is caught offside.
Foul by Joe Ralls (Cardiff City).
Massimo Luongo (Queens Park Rangers) wins a free kick on the right wing.
Sean Morrison (Cardiff City) wins a free kick in the defensive half.
Foul by Sebastian Polter (Queens Park Rangers).
Goal! Queens Park Rangers 2, Cardiff City 2. Scott Malone (Cardiff City) left footed shot from outside the box to the top left corner. Assisted by Joe Ralls.
Attempt missed. Jay Emmanuel-Thomas (Queens Park Rangers) right footed shot from the centre of the box is close, but misses to the left.
Foul by Joe Ralls (Cardiff City).
Sebastian Polter (Queens Park Rangers) wins a free kick on the left wing.
Corner, Queens Park Rangers. Conceded by Matthew Connolly.
Hand ball by Matthew Phillips (Queens Park Rangers).
Attempt saved. Joe Mason (Cardiff City) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Lee Peltier.
Attempt missed. Matthew Phillips (Queens Park Rangers) right footed shot from outside the box is too high. Assisted by Sebastian Polter.
Attempt saved. Sean Morrison (Cardiff City) header from the centre of the box is saved in the centre of the goal. Assisted by Peter Whittingham.
Kenwyne Jones (Cardiff City) wins a free kick in the attacking half.
Foul by Karl Henry (Queens Park Rangers).
Substitution, Cardiff City. Sammy Ameobi replaces Anthony Pilkington.
Lee Peltier (Cardiff City) wins a free kick in the defensive half.