Swansea City extended their unbeaten run to three games but were frustrated not to take more than a point from a strong performance against play-off hopefuls Coventry City at the Swansea.com Stadium.
In an entertaining and hard-fought Good Friday encounter, the Swans struck the woodwork through Ben Cabango, while Liam Walsh, Harry Darling and Joel Piroe also had big chances for the hosts.
At the other end, Andy Fisher made important saves to deny Gustavo Hamer and Matty Godden and dent a blow to the Sky Blues top-six aspirations.
The performance underlined how Russell Martin’s side have rebounded from a tough run of results as they took the game to a Coventry side who had lost just one of their last 10 games, and the Swansea boss will hope this was another positive step towards a strong end to the campaign.
In front of a bumper crowd – the largest at the Swansea.com Stadium this season - there was a lively start from an unchanged Swansea line-up. Viktor Gyokeres driving into the box at one end, before Walsh so nearly picked out Liam Cullen in the box.
Swansea followed that with a crisp flowing move, that end with Walsh and Ryan Manning combining for the latter to deliver a cross that Harry Darling headed into the side-netting.
More patient build-up allowed Walsh, Cullen and Luke Cundle to link, but the final ball was cleared by a watchful Luke McNally.
But the first save of the afternoon was made by Andy Fisher after Viktor Gyokeres worked room on the byline and teed up Callum Doyle, the defender’s low effort was on target only for the Swansea keeper to be equal to it.
The next big chance went the day of derby-day hero Cabango, the defender got a touch on Darling’s glancing header from a Manning free-kick, but could only watch as the ball came back off the post.
The Swans struck the woodwork again just before the half-hour mark as Walsh’s left-footed volley rattled the post before an offside flag belatedly went up.
Manning then breathed a sigh of relief after Hamer had seized on his loose pass, but Fisher got out quickly and smothered the midfielder’s effort.
Swansea were quickly back on the offensive, Ben Wilson tipping over a fizzing effort from Olivier Ntcham.
The temperature was rising and a superb tackle from Ntcham started a Swansea counter that ended with Joel Piroe finding the side-netting.
It remained goalless at the break but Swansea should have led inside 40 seconds of the restart
Manning’s cross was volleyed goalwards by Walsh, and when Wilson parried Darling looked set to pounce, only to sky his effort over.
Another chance quickly came, Ntcham’s excellent pass being brilliantly controlled by Piroe, but he could not keep his effort on target as Wilson raced from his line.
Coventry responded, Fisher diverting a Hamer cross behind after the midfielder had done well to skip his way into the Swansea area from the left-hand side, before Ben Sheaf fired wastefully wide after he had got away from Cundle.
Martin sent on Jamie Paterson in place of Cullen, and Jay Fulton and Morgan Whittaker soon followed for Cundle and Walsh.
Fisher came to Nathan Wood’s rescue when Godden seized on his backward header as the keeper advanced to save at the feet of the Coventry substitute.
With Coventry within sight of the play-off places, the visitors were always likely to commit numbers forward during the closing stages and it ensured the closing minutes saw plenty of space open up.
Ntcham forced Wilson to tip over another ferocious strike from distance as time began to run out for either side to find a winner, while Kyle McFadzean blasted narrowly wide for the visitors.
Swansea came so close to scoring a brilliant winner when Fulton, Grimes and Whittaker combined to find Piroe, but his effort was blocked by desperate defence as it somehow ended goalless.
Swansea City: Andy Fisher; Harry Darling, Ben Cabango, Nathan Wood, Ryan Manning; Luke Cundle (Jay Fulton 67), Matt Grimes (captain), Olivier Ntcham (Ollie Cooper 90); Liam Walsh (Morgan Whittaker 67); Joel Piroe, Liam Cullen (Jamie Paterson 59).
Unused Substitutes: Andreas Søndergaard, Joe Allen, Joel Latibeaudiere.
Coventry City: Ben Wilson, Callum Doyle, Kyle McFadzean (captain), Brooke Norton-Cuffy (Fankaty Dabo 71), Jamie Allen (Matty Godden 46), Josh Wilson-Esbrand (Jake Bidwell 71), Ben Sheaf, Luke McNally, Viktor Gyokeres, Josh Eccles (Ryan Howley 90), Gustavo Hamer.
Unused Substitutes: Simon Moore, Jonathan Panzo, Tyler Walker.
Referee: John Busby