Match ends, Cardiff City 3, Queens Park Rangers 0.
Cardiff City maintained their unbeaten home record in the Championship as they proved too powerful and clinical for Queens Park Rangers.
The visitors dominated possession and hit the woodwork twice but Cardiff led through two first half set-piece goals, Sean Morrison heading home before a Marlon Pack tap-in.
A thumping finish by sub Callum Paterson wrapped things up.
The win takes Cardiff to 10th, two points outside the play-offs, while they leapfrog QPR who drop to 11th.
The visitors came into this game with a fine recent record against the Bluebirds, who had beaten the West Londoners only once in their last eight meetings, but Mark Warburton's side wasted too many opportunities and failed to make their possession pay.
By contrast, Cardiff finally found the ruthless touch boss Neil Warnock has called for and were worthy winners despite having less than 30% possession.
The visitors had the best early chance when Bright Osayi-Samuel burst clear and fired at goal, but Alex Smithies was able to block at his near post.
The Hoops also came close on 20 minutes when a superb cross by Ryan Manning was almost turned in by former Swansea defender Angel Rangel, with the Spaniard receiving boos from the home faithful all evening.
However, by midway in the first half Cardiff led from their first real chance despite a lack of possession, with Morrison looping home a header after Aden Flint nodded back Lee Tomlin's inviting free-kick.
Tomlin dragged wide as Cardiff pushed for a second, but QPR improved as the half wore on and almost levelled when Eberechi Eze's curling effort struck the post and bounced clear.
Ilias Chair then tested Smithies as QPR pushed for parity at the interval, but they went in two behind after conceding a second goal entirely of their own making.
The visitors switched off at a corner as Tomlin was able to find Gavin Whyte in yards of space and his excellent cross gave Pack a simple tap-in.
The goal was harsh on QPR - though self-inflicted - and they almost got a score back when Manning struck the post, with Josh Scowen firing the rebound wide.
However, Cardiff managed their lead efficiently and defended well after the break, largely restricting the visitors before Paterson's excellent strike from Leandro Bacuna's cross made it 3-0.
Pack headed just wide as Cardiff sought a fourth, while Todd Kane's late effort was blocked by Smithies to preserve the Bluebirds' clean sheet.
QPR manager Mark Warburton told BBC Radio London:
"Am I wrong to say we played some really good football tonight? We had some very good open chances, hitting the bar and the post.
"You've got to put the ball in the back of the net, there's no excuses. But it's a difficult message to the players as for long, long periods tonight we were very good.
"Without appearing naive, we knew what to expect and we knew Cardiff possessed that real physicality and we know we have to deal with it.
"But I'm more frustrated that we've given away a soft free-kick tonight in the build-up to their first goal and we feel like we've had our pocket picked by falling 2-0 behind just before half-time."
Cardiff City manager Neil Warnock told BBC Sport Wales:
"You can see QPR are a good side, they play with freedom, we needed to be well organised and disciplined and I thought we were.
"I was pleased with the game management, really pleased with how well organised we were and it is lovely to see set-pieces from the training ground come off.
"The Championship is about winning games… I think we are getting better, we can still go quite a way yet, but you do need to get on runs, you need to go on two or three runs in the season.
"With the players we've got we should score more goals and the lads have taken it on board. Set-pieces are important in any league… we've got Sean Morrison back in the goals as well, thank goodness."
- 20WhyteBooked at 87minsSubstituted forHoilettat 87'minutes
- 17TomlinSubstituted forPatersonat 65'minutesBooked at 84mins
- 9GlatzelSubstituted forWardat 81'minutes
- 22RangelSubstituted forKaneat 68'minutes
- 14ManningBooked at 84mins
- 12BallSubstituted forWellsat 63'minutes
- 19ChairSubstituted forPughat 80'minutes
- Matt Donohue
- Shots on Target
Second Half ends, Cardiff City 3, Queens Park Rangers 0.
Corner, Cardiff City. Conceded by Ryan Manning.
Foul by Toni Leistner (Queens Park Rangers).
Danny Ward (Cardiff City) wins a free kick in the defensive half.
Corner, Queens Park Rangers. Conceded by Aden Flint.
Attempt saved. Ryan Manning (Queens Park Rangers) right footed shot from outside the box is saved in the centre of the goal. Assisted by Nahki Wells.
Substitution, Cardiff City. David Junior Hoilett replaces Gavin Whyte.
Gavin Whyte (Cardiff City) is shown the yellow card for a bad foul.
Ryan Manning (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Gavin Whyte (Cardiff City).
Corner, Cardiff City. Conceded by Ryan Manning.
Attempt blocked. Gavin Whyte (Cardiff City) right footed shot from the right side of the box is blocked. Assisted by Leandro Bacuna.
Ryan Manning (Queens Park Rangers) is shown the yellow card.
Callum Paterson (Cardiff City) is shown the yellow card.
Attempt blocked. Marc Pugh (Queens Park Rangers) right footed shot from the centre of the box is blocked. Assisted by Todd Kane.
Substitution, Cardiff City. Danny Ward replaces Robert Glatzel.
Marc Pugh (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Robert Glatzel (Cardiff City).
Substitution, Queens Park Rangers. Marc Pugh replaces Ilias Chair.