Swansea City maintained their unbeaten start to life under Steve Cooper with a fine victory at QPR thanks to goals from Bersant Celina, Borja Baston and Sam Surridge.
The Swans had taken a first-half lead when Celina raced in on goal to calmly fire the visitors ahead.
But the home side levelled through Jordan Hugill after he glanced a header home just past the hour mark.
However, substitute Jordon Garrick – on his league debut – won a penalty which Borja converted, before Surridge headed in his first Swansea goal to seal the win.
This was just Swansea’s third away win in the league in 2019, and put April’s 4-0 defeat at the same venue firmly in the rearview mirror.
Cooper had made two changes from the side that beat Preston as Andre Ayew – making a first Swansea start in 15 months - and George Byers came in for the injured Nathan Dyer and Aldo Kalulu.
The Swans had fallen behind early here in April, and the hosts had an early chance when Ebere Eze was given space to run at the defence, with his threatening ball across the box failing to find a hooped shirt in support.
Seconds later and Joe Rodon – fresh from his Wales call-up – made a sharp block to deny Bright Osayi-Samuel.
At the other end, Jay Fulton fired narrowly over from distance, while Celina saw his strike blocked after cutting in from the left.
Rodon, meanwhile, was in the thick of the action, keeping out Luke Amos’ strike in what was an open start.
Hugill fired over from a rehearsed corner, while Connor Roberts saw his final pass cut out with Byers clear on goal in support as the frantic action continued unabated.
Freddie Woodman smartly tipped Eze’s strike round the post as it threatened to arrow into the bottom corner.
Swansea responded. Roberts pull-back was missed by Borja following a similar build-up to the Spaniard’s first against Preston, with Celina’s bending effort getting QPR keeper Joe Lumley at full stretch to prevent the opener.
And the Swans took the lead in the 29th minute with a clinically taken effort. Celina and Ayew exchanged passes, with the Ghanaian sending the Kosovo international in on goal to slide past Lumley.
The visitors should have doubled their lead but Celina’s final pass to Byers was picked off by Lumley, before Rodon produced an outstanding defensive header to prevent Ryan Manning’s cross laying on a free header for Hugill to ensure Swansea led at the break.
The hosts, having made one injury-enforced change in the opening half, made their final two changes within seven minutes of the restart as Ilias Chair and Marc Pugh replaced Geoff Cameron and Mark Smith.
The start to the second half was, perhaps inevitably, less lively than the majority of the opening 45 minutes had been, although the impressive Todd Kane saw his cross strike the top of the bar for the hosts, before Josh Scowen fired inches wide with a thunderous right-footed effort.
Woodman then made a fantastic save to preserve Swansea’s lead as he stood up firmly to prevent Chair levelling from close range, with Rodon clearing the loose ball off the line.
Cooper sent on Garrick for his league debut in place of Byers but the hosts soon levelled after a period of sustained pressure.
The ball was worked wide and Osayi-Samuel’s cross perfectly picked out Hugill, who guided the ball into the far corner.
QPR should have led just seconds later but Rodon and Fulton made vital blocks as Swansea found themselves firmly under the cosh.
But Garrick produced a direct run into the area to induce a rash challenge which had the referee quickly pointing to the spot., and Borja confidently stepped up to dispatch his fourth goal of the season beyond Lumley.
And Swansea made the points safe in superb style with 10 minutes remaining.
Ayew and Jake Bidwell were patient down the left, with the former digging out a stunning cross for substitute Surridge to power home a header.
Queens Park Rangers: Joe Lumley; Todd Kane, Grant Hall (captain), Yoann Barbet, Ryan Manning; Geoff Cameron (Ilias Chair 46); Bright Osayi-Samuel, Matt Smith (Marc Pugh 52), Luke Amos (Josh Scowen 31), Ebere Eze; Jordan Hugill.
Subs: Jan Mlakar, Nahki Wells, Liam Kelly, Toni Leistner.
Swansea City: Freddie Woodman; Connor Roberts, Mike van der Hoorn, Joe Rodon, Jake Bidwell; Jay Fulton, Matt Grimes; Andre Ayew (Kyle Naughton 81), George Byers (Jordon Garrick 62), Bersant Celina; Borja Baston (Sam Surridge 77).
Subs: Kristoffer Nordfeldt, Ben Wilmot, Yan Dhanda, Wayne Routledge.
Attendance: 12, 287