Swansea City showed tremendous grit and character to earn a point after playing over an hour with 10 men against Sunderland at the Swansea.com Stadium.
Michael Duff’s side had Charlie Patino sent off for two highly debatable bookings with barely half an hour on the clock, but could have led at half-time had Jamal Lowe been able to convert from the spot.
Keeper Carl Rushworth – on his 100th EFL appearance – was outstanding in goal, making terrific saves to deny Patrick Roberts and Luke O’Nien as the Swans dug in to ensure they took something from the game.
It means they have now lost just two of their last nine Championship fixtures as they underlined their spirit and togetherness against a visiting side fancied to be play-off contenders once again.
The Swans had been unchanged from the win at Blackburn and made a couple of good forays down the right in the early going.
The first real chance went the way of the visitors, with Harry Darling making a good block from a Dan Neil effort, with Patino completing the clearing work.
Josh Tymon then produced a strong surge down the left channel, but his final ball into the box was cut out before it could find Liam Cullen.
But the Swans were given a let off 17 minutes in when Nazariy Rusyn steered well wide after being fed through on goal by Jobe Bellingham.
It then took fine covering work from Jamal Lowe to sweep away a Jack Clarke cross, before Rushworth made a sharp save at his near post from the same player.
And Swansea’s task was made even harder when Patino, having been harshly given a first booking then received what appeared a similarly soft second yellow card after Pierre Ekwah collided with the midfielder as the Sunderland man looked to turn away from the Swans playmaker.
That left Duff’s side facing an hour with a numerical disadvantage, and Rushworth made a tremendous save to deny a low Patrick Roberts effort which he tipped onto the post and then gathered in as the ball came back to him off the woodwork.
There was more drama when the Swans were awarded a penalty as Luke O’Nien hauled down Cullen at a corner, but Lowe saw his spot-kick saved by Anthony Patterson and the teams went in level with the score goalless.
Jay Fulton replaced Cullen at the break, and Swansea’s frustrations with the officials were only heightened when the Scot was booked after cleanly winning a loose ball for his side in midfield.
Duff himself was booked for his protestations, but decisions continued to go against the hosts, Clarke being awarded a free-kick on the edge of the Swansea box despite a clear dive.
That came to nothing when O’Nien blazed well over the bar and the hosts were defending stoutly despite having to weather some heavy pressure.
But they threatened to snatch the lead when Fulton powerfully won a header and sent Lowe towards goal, with Patterson getting down to his right to haul in the forward’s low strike towards the far corner.
At the other end a deflected Luis Semedo shot landed on the roof of the Swansea net, before Rushworth made another superb stop, readjusting to tip the ball over after a deep corner had rebounded off an unsuspecting O’Nien at the post.
Bradley Dack nodded wide just before the Swans introduced Ben Cabango as the contest entered its closing stages.
Pierre Ekwah clipped the top of the bar with a curling strike from distance, and the Black Cats had a number of corners in stoppage time, but the hosts emerged with a point to show for their tireless efforts.
Swansea City: Carl Rushworth, Harry Darling, Matt Grimes (captain), Jerry Yates (Ollie Cooper 69), Jamal Lowe, Jamie Paterson (Ben Cabango 77), Josh Tymon, Charlie Patino, Liam Cullen (Jay Fulton 46), Harrison Ashby, Bashir Humphreys.
Unused Substitutes: Andy Fisher, Kristian Pedersen, Nathan Tjoe-A-On, Kyle Naughton, Liam Walsh, Cameron Congreve.
Sunderland: Anthony Patterson, Niall Huggins (Bradley Dack 56), Luke O'Nien (captain), Nazariy Rusyn (Luis Semedo 56), Dan Ballard (Dennis Cirkin 76), Patrick Roberts, Jack Clarke, Dan Neil (Abdoullah Ba 79), Trai Hume, Jobe Bellingham (Alex Pritchard 56), Pierre Ekwah.
Unused Substitutes: Matthew Young, Jenson Seelt, Mason Burstow, Adil Aouchiche.
Referee: Robert Madley
Attendance: 16,974