Ki Sung-yueng’s 78th-minute drive off the post, from the unlikeliest of angles, finally broke Rob Green’s resolve in the Rangers goal.
Wayne Routledge’s accurate finish five minutes later wrapped up the points for the hosts and lifted the Swans above Arsenal into sixth in the table.
For the best part of 80 minutes another frustrating outing appeared to be on the cards for Garry Monk’s side as former England international Green produced one of the goalkeeping performances of the season during a somewhat uneventful opening 45 minutes in south Wales.
In-form striker Wilfried Bony saw numerous attempts thwarted as too did Gylfi Sigurdsson, whose fierce near-post free-kick required the use of goal-line technology to ascertain whether it had crossed the line – somehow Green had clawed the ball out.
But in the end the pressure told for Rangers who failed to produce anything more than a handful of clear-cut chances as Monk’s side atoned for Saturday’s disappointing draw with Crystal Palace to rightfully claim the three points their bright and persistent performance deserved.
After Niko Krancjar had failed to keep his inviting first-minute free-kick on target Swansea took notice and quickly settled into their dominating possession game, limiting their opponents to fleeting ventures into opposition territory.
Slick in possession and determined to stretch the Rangers defence, Swansea turned to their wide players Routledge and Jefferson Montero to unlock the resolute Rangers defence.
Green made the first of a series of superb saves when Kyle Bartley’s thundering near-post header was parried away in the eight minute. The rebound fell to Bony who was unable to adjust his feet and steer a second shot on target.
Montero was keen to test his Rangers marker Nedum Onuoha at every opportunity and he started another free-flowing move which ended with Neil Taylor squaring to Sigurdsson and the Icelandic international’s shot squirming wide courtesy of a deflection off Joey Barton.
Swansea came closest to breaking the deadlock after 37 minutes when Barton was booked for bringing down Routledge and Sigurdsson curled the free-kick around the Rangers wall.
Green dived to his left to keep the shot out with television replays showing how close the ball was to crossing the line, only fractions preventing Swansea from taking the lead.
But having dominated the first half there was almost a nasty sting in the tail for Swansea when Kranjcar crossed for Leroy Fer to steal into the box, but his header was sent straight at Lukasz Fabianski on his goal-line.
The first-half pattern of Swansea creating chances but failing to take them continued within three minutes of the restart when Sigurdsson slipped Bony through, but Dunne raced back to block and the ball ended up on the roof of the Rangers net.
Ashley Williams had to react smartly to stop Eduardo Vargas reaching a loose ball on the edge of the area and Swansea had to stay patient to work their way through a committed Rangers rearguard.
Rangers were relieved when Green flapped at Montero’s cross and no Swansea player gambled in the six-yard box, with Yun Suk-young allowed to scramble the ball to safety. Then Bony should have scored when Leon Britton and Routledge combined, but his finish was weak and straight at Green.
Moments later Bony connected far better with Montero’s centre but Green made an excellent stop low at his near post. But their resolute defending was to count for nothing as Swansea finally broke through in the final 12 minutes and Bony was close to adding a third in stoppage time when he struck a post.
SOCCER SPECIAL ANALYSIS – MATT LE TISSIER
If you’re going to stay up in this league you have to win at least two or three away games and QPR have got problems at the minute.
That game was goalless for 78 minutes because of one person – Rob Green had an absolutely brilliant night. He was the only one unfortunate to be on the losing side; he was superb. He made some cracking saves and denied Bony three or four times in that game. It was only a matter of time before Swansea got the first goal.
Swansea City: Fabianski (6), Richards (5), Bartley (6), Williams (5), Taylor (5), Britton (5), Ki (6), Routledge (7), Sigurdsson (7), Montero (6), Bony (6).
Used subs: Shelvey (5), Dyer (6), Carroll (4).
QPR: Green (8), Onuoha (5), Dunne (6), Caulker (5), Yun (5), Vargas (5), Barton (5), Henry (5), Fer (5), Kranjcar (6), Austin (4).
Used subs: Hoilett (4).
Man of the Match: Rob Green.