Queens Park Rangers’ four-game Championship winning streak was halted after a hard-fought goalless draw with Swansea City.
Luke Amos came closest to a goal when he hit the post, while Lyndon Dykes wasted a big chance late on.
Joel Piroe went closest at the other end as Swansea, who had Flynn Downes sent off in added time, stretched their unbeaten run to three games.
The draw means Rangers stay fourth, while Swansea remain 17th.
After successive league wins against Coventry City, West Bromwich Albion, Birmingham City and Bristol City, Hoops boss Mark Warburton may view this as an opportunity to make up significant ground on the top two missed.
But while Swansea continue to look like a work in progress under Russell Martin, they were good value for a point as they claimed a second successive clean sheet.
This game should have been played just before Christmas, but was postponed because of a Covid outbreak at Rangers which also saw their trip to Sheffield United called off.
Warburton’s side have been in sparkling form since returning to action after Christmas, while Swansea have shown signs of progress recently after various Covid issues saw them go 35 days without playing a league game.
Their absolute commitment to possession football was on display in a first half which was short on goalmouth incident.
Swansea passed the ball admirably, but offered little in the final third as Matt Grimes volleyed off target at a set-piece and Joel Piroe’s deflected effort rolled into the arms of David Marshall.
The hosts looked to have carved out the one genuine chance before the break when Charlie Austin’s header was kicked away by Ben Hamer, although a questionable offside flag would have saved Swansea anyway.
Both sides needed to produce more attacking quality in the second half – and it was Swansea who threatened first after a sweeping move allowed Joel Latibeaudiere to feed Piroe in the penalty area.
The Dutchman poked a shot towards the bottom corner but was denied by a smart Marshall save.
Rangers responded, with Luke Amos driving into the penalty area and beating Hamer with a low drive only for the ball to cannon to safety off the far post.
Swansea pressed again as the game opened up, with full debutant Hannes Wolf seeing an effort blocked by Marshall before Smith dragged wide on the follow-up.
Some fine work from Grimes saw Swansea threaten again only for Latibeaudiere to poke across the face, before substitute Dykes found space in the visitors’ box but shot straight at Hamer.
Swansea substitute Michael Obafemi did find the target in the closing stages, but his effort was rightly ruled out for offside.
Downes, who had already been cautioned for a foul on Albert Adomah, was dismissed by referee Andy Davies in the second minute of stoppage time when he saw yellow again following a tangle with Austin which also saw the Rangers striker booked.
Queens Park Rangers manager Mark Warburton:
“We weren’t at our best tonight but Swansea are a good team that move the ball well and can hurt you. It’s only a point but they are a good team.
“We lacked a bit of quality in the final third but that could be a very valuable point come the end of the season.
“It’s not just our attacking players – could we move the ball quicker, could we be more brave in our positions?
“But that’s football. They are humans, not machines, and they have been tremendous of late. They deserve enormous credit for the run they have been on.”
Swansea head coach Russell Martin:
“I am proud of the players. They showed so much courage at times.
“I think we were the better team, we just lacked a little bit of quality in the final third.
“We said wherever we go we are going to try to be the team we want to be.
“I just asked for courage from the guys. Wherever we go I want the supporters to know what the team is going to like it.
“There was some incredible football on a pitch that’s not been cut, not been watered. That’s their prerogative.”
- 3WallaceSubstituted forAdomahat 61′minutes
- 22OdubajoBooked at 69mins
- 8AmosSubstituted forDykesat 61′minutes
- 21WillockSubstituted forThomasat 82′minutes
- 11AustinBooked at 90mins
- 7JohansenBooked at 76mins
- 5de Wijs
- 5CabangoBooked at 47mins
- 4DownesBooked at 90mins
- 7SmithBooked at 29mins
- 13WolfSubstituted forFultonat 66′minutes
- 17PiroeSubstituted forObafemiat 66′minutesBooked at 90mins
- Andy Davies
Match ends, Queens Park Rangers 0, Swansea City 0.
Second Half ends, Queens Park Rangers 0, Swansea City 0.
Michael Obafemi (Swansea City) is shown the yellow card.
Charlie Austin (Queens Park Rangers) is shown the yellow card.
Second yellow card to Flynn Downes (Swansea City).
Cyrus Christie (Swansea City) wins a free kick on the right wing.
Foul by Moses Odubajo (Queens Park Rangers).
Corner, Queens Park Rangers. Conceded by Ben Cabango.
Offside, Swansea City. Joel Latibeaudiere tries a through ball, but Michael Obafemi is caught offside.
Foul by Cyrus Christie (Swansea City).
George Thomas (Queens Park Rangers) wins a free kick on the left wing.
Corner, Queens Park Rangers. Conceded by Korey Smith.
Attempt saved. Lyndon Dykes (Queens Park Rangers) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Moses Odubajo.
Substitution, Queens Park Rangers. George Thomas replaces Chris Willock.
Attempt blocked. Korey Smith (Swansea City) right footed shot from outside the box is blocked. Assisted by Jay Fulton.
Foul by Joel Latibeaudiere (Swansea City).
Albert Adomah (Queens Park Rangers) wins a free kick on the right wing.
Attempt missed. Joel Latibeaudiere (Swansea City) right footed shot from the left side of the box is close, but misses to the right. Assisted by Matt Grimes.
Stefan Johansen (Queens Park Rangers) is shown the yellow card for a bad foul.
Ryan Manning (Swansea City) wins a free kick in the defensive half.