Swansea City racked up a 15th clean sheet of the season as they played out a goalless draw against Birmingham City at the Swansea.com Stadium.
The hosts were unable to find a breakthrough and mark Kyle Naughton’s 250th appearance for the club with a win, as top scorer Joel Piroe went closest with a clever backheel, while Hannes Wolf spurned a great early opening by opting to pass when clean through on goal.
The visitors, meanwhile, wasted three gilt-edged chances as Juninho Bacuna, Tahith Chong and Maxime Colin all contrived to miss the target from close range.
It ensured a first goalless draw in SA1 since the draw with Millwall all the way back in September.
The Swans had shown two changes from the midweek win at Peterborough as Finley Burns came in for Korey Smith, while Olivier Ntcham replaced injury victim Flynn Downes.
But Smith would end up starting as an injury to Jamie Paterson in the warm-up forced a late reshuffle for the hosts.
The Swans created the first big chance just five minutes in, a lovely reverse ball from Ntcham sending Wolf scampering in on goal.
The Austrian had every right to take on a shot himself, but opted to roll the ball across goal, only to find no white shirts on hand.
Naughton then fired over after an excellent run up the middle of the pitch, before the visitors spurned an absolute sitter in the 13th minute.
Chong simply left Burns in his wake and unselfishly laid the ball off for Bacuna, but the midfielder somehow skied over from the edge of the six-yard box.
Blues skipper Gary Gardner then worked Andy Fisher after chesting the ball beyond Ben Cabango to hand the Swans a pair of wake-up calls after a sluggish start.
The home side responded, Joel Piroe forcing Neil Etheridge into a sprawling low save after fine work by Ntcham and Wolf down the left.
Cyrus Christie whipped in two superb crosses to find Piroe. The first saw the Dutchman’s header blocked, while the second ended with Etheridge getting down to his right to keep out an improvised backheel.
There followed a lull in the proceedings but Birmingham raised the temperature by crafting another chance they should have taken.
Bacuna drove into the area and picked out Chong at the far stick, but he could only flick the ball over the bar and the first half ended goalless.
The Swans made a change at the break as Joel Latibeaudiere replaced Burns, before Chong had the latest sight of goal for Birmingham as his firm strike stung the palms of Andy Fisher.
Onel Hernandez then fired a low strike narrowly wide after working some room on his right foot just outside the Swansea area.
The visitors were having a good spell and Maxime Colin than smacked a volley against the bar from point-blank range after losing his marker at a corner.
The Swans regained their composure, putting together a slick move but Nathanael Obgeta’s final ball did not have enough on it to reach Michael Obafemi in the middle.
Fisher then showed superb handling to pluck Scott Hogan’s glancing header out if the air, before Naughton blocked Chong’s effort in the area a few minutes later.
As time ran down, there was one final chance for the Swans as the ball fell to Piroe on the edge of the area, but his volley was straight into the grateful gloves of Etheridge.
Swansea City: Andy Fisher; Ben Cabango, Kyle Naughton, Finley Burns (Joel Latibeaudiere 46); Cyrus Christie, Matt Grimes (captain), Korey Smith (Nathanael Ogbeta 63), Hannes Wolf (Kyle Joseph 80); Olivier Ntcham, Joel Piroe, Michael Obafemi.
Unused Substitutes: Ben Hamer, Jay Fulton, Cameron Congreve.
Birmingham City: Neil Etheridge, Maxime Colin, Marc Roberts, Tahith Chong, Scott Hogan, Gary Gardner (captain), Juninho Bacuna (Taylor Richards 75), Jordan Graham, Onel Hernandez, Ivan Sunjic, Nico Gordon.
Unused Substitutes: Zack Jeacock, Ryan Woods, Lukas Jutkiewicz, Jeremie Bela, Jordan James, Marcel Oakley.