Swansea City played out a second home draw in succession as they were held by Millwall at the Swansea.com Stadium.
Russell Martin’s side had their chances, with Joel Piroe, Jamie Paterson and Michael Obafemi going closest; the latter seeing his effort clip the outside of the post.
Swansea again had the better of territory and possession, with long periods of control, but could not find a breakthrough.
Ben Hamer kept a second-straight clean sheet, and made two important saves during the closing stages as it ended all-square.
Head coach Martin had made two changes from the weekend draw with Hull as Ben Cabango and Ryan Manning came in for Rhys Williams and Jake Bidwell respectively.
Following a minute’s applause in memory of those who lost their lives in the Gleision Colliery exactly 10 years ago, there was plenty of action in the early stages.
After a prolonged period of head tennis in the Swansea box, Billy Mitchell saw his shot blocked by Manning while Piroe was denied at the other end after being played in by Olivier Ntcham.
Another flowing move ended with Paterson floating a lovely cross to the far post that just evaded Ntcham, before an important clearance prevented Matt Grimes picking out Piroe’s run.
Paterson was involved again in the 23rd minute, exchanging passes with Piroe to send the striker away, but the Dutchman delayed taking a shot on and his effort was eventually blocked.
Swansea continued to have the better of proceedings, with Manning spurning the best chance yet as he blazed a volley over the bar from the corner of the six-yard box just past the half-hour mark.
And Martin’s men really should have led three minutes before the break. Ethan Laird seized on a poor clearance from Millwall keeper Bartosz Bialkowski and burst into the area.
His pull-back found Paterson free, but the midfielder got his feet in a tangle and could only send the ball wide of the target as it remained goalless at the break.
Shortly after the interval, Bialkowski parried a Grimes free-kick, before Jed Wallace volleyed wastefully over at the other end.
But it was immediately obvious that the visitors were beginning to try and press the hosts higher up the pitch, after spending much of the opening period camped in their own territory.
Martin sent on Obafemi for Ntcham as the Swans continued to search for an opener.
Piroe went close again, forcing Bialkowski to tip his low strike around the post from Paterson’s chipped pass, before the Millwall keeper held a shot from Grimes.
Liam Walsh was the next introduction and his lovely pass allowed Obafemi to turn his man and advance into the box.
The striker’s low shot beat Bialkowski, but agonisingly clipped the outside of the post.
It was soon Millwall with their heads in their hands after a quick break saw Scott Malone tee up Tom Bradshaw, but Hamer made a superb close-range stop to deny him.
Walsh then thought he had snatched a dramatic winner when his last-minute free-kick beat the wall, but was kept out by a superb save from Bialkowski.
Swansea City: Ben Hamer; Ryan Bennett, Kyle Naughton, Ben Cabango; Ethan Laird, Flynn Downes, Matt Grimes (captain), Ryan Manning; Olivier Ntcham (Michael Obafemi 63), Jamie Paterson (Liam Walsh 70); Joel Piroe (Liam Cullen 80).
Unused Substitutes: Steven Benda, Jay Fulton, Liam Cullen, Joel Latibeaudiere, Jake Bidwell.
Millwall: Bartosz Bialkowski, Murray Wallace, Jake Cooper (captain), Maikel Kieftenbeld, Jed Wallace, Scott Malone, George Saville, Dan Ballard (Ryan Leonard 70), Billy Mitchell, Mason Bennett (Connor Mahoney 63), Tom Bradshaw (Matt Smith 84).
Unused Substitutes: George Long, Alex Pearce, Ben Thompson, Matt Smith, Jon Dadi Bodvarsson.