Match ends, Queens Park Rangers 1, Swansea City 3.
Swansea City climbed to second in the Championship with an impressive win at Queens Park Rangers.
Bersant Celina gave the visitors the lead after being put through by André Ayew, but after the break Jordan Hugill glanced in a header to equalise.
Just three minutes later Swansea were back in front as Yoann Barbet brought down Jordan Garrick in the box, allowing Borja to score from the spot.
Substitute Sam Surridge connected with Ayew's cross to make the game safe.
Former Swan Angel Rangel had been the subject of much of the pre-match build-up, but the Spaniard missed out on QPR's match-day squad with Todd Kane lining up at right-back instead.
For Swansea, Ayew replaced hamstring victim Nathan Dyer, while George Byers started for Aldo Kalulu.
The home side started brightly and Hugill controlled the ball with his chest before firing a dipping volley over the crossbar.
Swans goalkeeper Freddie Woodman then had to produce a fine full-length save from Eberechi Eze, after the forward robbed Connor Roberts.
Having survived those scares, Swansea took the lead thanks to Celina's first goal of the season.
Ayew exchanged passes with Borja to launch a counter-attack, allowing the Ghanaian to thread the ball through to Celina to score past Joe Lumley.
Moments later QPR lost Luke Amos to injury, with Josh Scowen taking his place in midfield.
Rangers manager Mark Warburton called on the rest of his bench early, sending Ilias Chair on for Geoff Cameron at half-time and introducing Marc Pugh soon after in place of Matthew Smith.
It nearly paid dividends as Kane's cross pinged off the crossbar, while Scowen's low drive whistled just past the post.
Scowen then turned provider to set up Chair, who saw his shot cleared off the line by Wales squad call-up Joe Rodon.
The pressure eventually told, as Hugill connected with Chair's cross to glance his header inside the far post.
But the Hoops' revival was quickly quashed as Barbet sent Garrick tumbling in the box and Borja stepped up to convert the spot-kick for his fourth goal of the season.
The Spaniard was replaced soon after by Surridge, who added a third Swans goal with almost his first touch as he headed in after being picked out by Ayew.
QPR manager Warburton:
"The first half was very much nip and tuck and after a loose touch we find ourselves 1-0 down.
"We had to step up the intensity and speed of ball movement and press higher up the park, which we did. We then looked very good and created chance after chance.
"We got the equalising goal and looked really sharp, and then we were naive. To have the crowd behind us, be playing in that manner and then concede four minutes after equalising, all the good work was undone.
"We have to eradicate mistakes and be more clinical in front of goal."
Swansea head coach Steve Cooper told BBC Sport Wales:
"It's a great result, no doubt about that. It was a really good game, two teams trying to play with the ball and I thought we played some super stuff.
"QPR are a good team and I know Mark Warburton is a really good coach and you can see what they're trying to do. It's going to be a really tough place to come here and pick up points.
"So tactically we had to be excellent second half and we were - particularly out of possession we defended the box really well - but we tried to stay on the ball when we could and we scored two excellent goals."
- 8AmosSubstituted forScowenat 31'minutes
- 5CameronSubstituted forChairat 45'minutes
- 20Osayi-SamuelBooked at 62mins
- 6SmithSubstituted forPughat 52'minutes
- 9HugillBooked at 90mins
- 27WoodmanBooked at 75mins
- 5van der Hoorn
- 4RodonBooked at 41mins
- 6FultonBooked at 55mins
- 22A AyewSubstituted forNaughtonat 81'minutes
- 28ByersSubstituted forGarrickat 62'minutes
- 9BastónSubstituted forSurridgeat 77'minutes
- Paul Tierney
- Shots on Target
Second Half ends, Queens Park Rangers 1, Swansea City 3.
Attempt blocked. Bersant Celina (Swansea City) right footed shot from outside the box is blocked. Assisted by Jay Fulton.
Attempt missed. Jordan Hugill (Queens Park Rangers) header from the centre of the box is too high. Assisted by Ryan Manning with a cross.
Corner, Swansea City. Conceded by Todd Kane.
Jordan Hugill (Queens Park Rangers) is shown the yellow card.
Offside, Queens Park Rangers. Josh Scowen tries a through ball, but Bright Samuel is caught offside.
Attempt blocked. Josh Scowen (Queens Park Rangers) right footed shot from outside the box is blocked. Assisted by Ilias Chair.
Offside, Swansea City. Freddy Woodman tries a through ball, but Sam Surridge is caught offside.
Offside, Queens Park Rangers. Yoann Barbet tries a through ball, but Jordan Hugill is caught offside.
Attempt blocked. Eberechi Eze (Queens Park Rangers) right footed shot from outside the box is blocked.
Ryan Manning (Queens Park Rangers) wins a free kick on the left wing.
Foul by Kyle Naughton (Swansea City).
Foul by Jordan Hugill (Queens Park Rangers).
Joe Rodon (Swansea City) wins a free kick in the defensive half.
Offside, Queens Park Rangers. Ryan Manning tries a through ball, but Marc Pugh is caught offside.
Bright Samuel (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Jake Bidwell (Swansea City).
Yoann Barbet (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Sam Surridge (Swansea City).