Swansea City suffered their heaviest defeat of the season as the visitors never recovered from an awful start at Loftus Road.
Graham Potter’s side had trailed by two goals inside the opening five minutes as Darnell Furlong headed in the opener, before Tomer Hemed fired home a second.
It soon got worse as Hemed’s second on 17 minutes made it 3-0, before Massimo Luongo compounded the Swans’ misery after the break.
It was a desperately disappointing afternoon as the visitors suffered a seventh-straight away defeat against opponents who – prior to kick-off – had won just once since Boxing Day in the Championship.
Swansea came nowhere near reaching the levels of performance seen in Liberty wins over Brentford, Middlesbrough and Stoke and can have no complaints after being unable to handle a full-throttle opening from the hosts as well as suffering familiar issues defending set-pieces.
The hosts, still threatened by relegation, started with real intensity and were denied an early opener as Kristoffer Nordfeldt did well to save a Furlong header.
But there was no let-off when the same player met immediate resulting corner, escaping his man to find the net in just the third minute.
The lead was doubled inside five minutes as the Swans failed to deal with a long punt downfield. Mike van der Hoorn’s skewed header was not cleaned up Cameron Carter-Vickers and Hemed fired left-footed into the bottom corner.
It was a nightmare start and it took the Swans time to regroup. They began to find their feet with a long spell of possession which ended with Oli McBurnie just unable to get hold of a loose ball as it fell on the edge of the six-yard box.
But the Swans fell further behind in the 17th minute. A simple move saw Josh Scowen whip in a threatening cross and Hemed converted from close range.
When the Swans did finally string a move together McBurnie was unable to find Daniel James with the winger free on goal.
George Byers then bent an effort over the bar after James and Wayne Routledge had linked smartly down the left-hand flank.
The Swans were enjoying plenty of the ball but, with QPR understandably happy to sit off and protect a very healthy lead, the visitors were finding it hard to create clear-cut chances.
Potter’s response to one of the worst 45 minutes of the campaign prompted the introductions of Bersant Celina and Jay Fulton for Nathan Dyer and Kyle Naughton.
The Swans did make a good start to the half, Connor Roberts curling over following good build-up play, while a good break-out involving Routledge and James threatened more than it ultimately delivered.
But Swansea’s set-piece Achilles heel cost them again on 53 minutes as they conceded from a corner.
Having survived one goalmouth scramble, the Swans immediately allowed another to materialise and Luongo gratefully took the chance to volley home past a motionless Nordfeldt, whose poor punch had prompted the original melee.
They nearly pulled a goal back on the hour. Routledge headed a Matt Grimes’ corner back across goal only for Cameron Carter-Vickers to nod against the bar from close range.
Swansea finally worked an opening in the 72nd minute, Routledge beating his man and rolling an inviting ball into the path of James, but the winger’s tame finish was easily blocked.
QPR: Joe Lumley, Darnell Furlong, Luke Freeman (Pawel Wszolek 69), Jordan Cousins, Josh Scowen, Ryan Manning, Tomer Hemed (Lewis Walker 83), Bright Osayi-Samuel, Massimo Luongo, Angel Rangel (Ebere Eze 88), Toni Leistner (capt).
Subs not used: Matt Ingram, Matt Smith, Nahki Wells, Joel Lynch.
Swansea City: Kristoffer Nordfeldt; Connor Roberts, Mike van der Hoorn (capt), Cameron Carter-Vickers, Kyle Naughton (Jay Fulton 46); George Byers (Joe Rodon 65), Matt Grimes; Nathan Dyer (Bersant Celina 46), Wayne Routledge, Daniel James; Oli McBurnie.
Subs not used: Steven Benda, Barrie McKay, Joel Asoro, Courtney Baker-Richardson.