Match ends, Millwall 1, Swansea City 1.
Millwall and Swansea City's play-off aspirations took a knock in a 1-1 draw that does neither side much good.
The Lions looked set for a first win since the season resumed thanks to Mason Bennett's first-half goal.
But Rhian Brewster's free-kick, which went in via goalkeeper Bartosz Białkowski, earned Swansea a point.
Millwall missed two excellent late chances to win, with Murray Wallace heading just wide and then against the post in the final minutes.
This contest felt pivotal for two teams with promotion aspirations, especially as they were both beaten last time out, and the draw probably leaves both sides with too much work to do to make the top six.
Back-to-back defeats in a race for sixth place which features as many as seven different Championship teams would definitely not have been advisable with the finishing line in sight.
Swansea's cause was not helped by the absence of Wales defender Joe Rodon, who could miss the remainder of the season with an ankle injury sustained in training.
The visitors dominated possession of the ball from the first whistle and for long periods, with Yan Dhanda having a firm free-kick saved by Białkowski after Shaun Hutchinson tripped Brewster.
However, possession does not win football matches and it became evident early that Millwall would be a huge threat to the Welsh side on the counter-attack.
Jed Wallace's shot was easily saved by Freddie Woodman on 11 minutes, but it the home side were beginning to find gaps in the Swansea defence.
The visitors did come close on 16 minutes when Conor Gallagher's shot deflected off Ryan Woods and just crept past the post with Białkowski wrong-footed.
Mahlon Romeo then fired wide and Murray Wallace was off target with a header, before the hosts took the lead with a rapid counter-attack.
The Lions dispossessed midfielder Matt Grimes and took advantage of a four-on-three situation as Wallace found Bennett at the second attempt with the striker able to sweep the ball home from close range.
Grimes almost made amends as the Swans wasted a great chance from his free-kick on 28 minutes, when Ben Wilmot headed the ball across goal and Brewster stabbed the ball into the ground, but Jake Cooper was able to clear from almost under his own crossbar.
Swansea kept looking for the equaliser, but the Lions kept asking questions on the break and might have doubled their lead before half-time when the impressive Jed Wallace was sent clear and rounded Woodman, but Wilmot was able to block his cross.
Swansea had the first chance of the second period but Białkowski smothered Gallagher's shot before some brilliant defensive play by Andre Ayew denied Tom Bradshaw from close range.
Swansea's George Byers and Millwall's Shane Ferguson dragged shots wide before the Swans finally struck back thanks to Brewster's wonderful free-kick from just outside the penalty box that crashed in off the crossbar and the back of Białkowski after Hutchinson had fouled Gallagher.
Murray Wallace then missed a huge chance to put the hosts in front when he headed wide, unmarked, with 15 minutes remaining after the hosts had a good penalty shout waved away.
The Swans' injury worries at the back increased when Wilmot went off with a knee problem in the final stages and it was Millwall who looked the likeliest winner, but Murray Wallace headed against the post after Jed Wallace's precise corner.
Millwall manager Gary Rowett: "At the moment my thought process is we are tinged with still trying to get something out of this season and also learning some things for next season. That will be a real challenge because we want both.
"We've done everything we could to win the game and, until we're out of it, we'll keep fighting.
"We need our fans here. They give us that 20 minutes of pressure which other teams struggle to cope with. Our fans give us a lift. I know other teams do the same, but we're a unique club in that sense."
Swansea City head coach Steve Cooper told BBC Sport Wales: "We needed a response to the Luton defeat where we let ourselves down and I felt the boys did stand up today.
"It may take five or six wins now... anything can happen still and we are going to have to win more games than we don't, a lot more.
"It is going to be a tense run-in and I think there are going to be plenty more twists and turns to come.
"I've told the players, we will never give up. We will be fighting until the end. We are going for it, we are absolutely going for it and I thought we did show that today."
- 4HutchinsonBooked at 5mins
- 3M WallaceBooked at 70mins
- 7J Wallace
- 9BradshawSubstituted forSmithat 85'minutes
- 20BennettSubstituted forMahoneyat 45'minutes
- 20WilmotSubstituted forGuehiat 83'minutes
- 28ByersBooked at 25mins
- 22A Ayew
- 21DhandaSubstituted forCelinaat 59'minutes
- James Linington
- Shots on Target
Second Half ends, Millwall 1, Swansea City 1.
Attempt blocked. Jed Wallace (Millwall) right footed shot from outside the box is blocked. Assisted by Murray Wallace.
Corner, Millwall. Conceded by Jake Bidwell.
Corner, Millwall. Conceded by Jake Bidwell.
Jake Cooper (Millwall) wins a free kick in the defensive half.
Foul by Rhian Brewster (Swansea City).
Murray Wallace (Millwall) hits the right post with a header from the centre of the box. Assisted by Jed Wallace with a cross following a corner.
Corner, Millwall. Conceded by Kyle Naughton.
Substitution, Millwall. Matt Smith replaces Tom Bradshaw.
Attempt missed. Ryan Woods (Millwall) right footed shot from outside the box misses to the left. Assisted by Shaun Williams.
Attempt blocked. Shane Ferguson (Millwall) left footed shot from outside the box is blocked. Assisted by Murray Wallace.
Attempt blocked. Tom Bradshaw (Millwall) left footed shot from the right side of the box is blocked. Assisted by Mahlon Romeo.
Substitution, Swansea City. Marc Guehi replaces Ben Wilmot because of an injury.
Corner, Millwall. Conceded by Ben Cabango.
Attempt missed. Murray Wallace (Millwall) header from the right side of the six yard box is close, but misses to the right. Assisted by Jed Wallace with a cross following a corner.
Corner, Millwall. Conceded by Ben Wilmot.
Attempt blocked. Jed Wallace (Millwall) right footed shot from outside the box is blocked. Assisted by Shaun Williams.
Foul by Jed Wallace (Millwall).
Matt Grimes (Swansea City) wins a free kick in the defensive half.