Match ends, Brentford 2, Millwall 2.
Brentford 2-2 Millwall
Moses Odubajo scored a last-minute equaliser to earn Brentford a point as Millwall let a two-goal lead slip.
Lee Gregory rounded Bees keeper David Button to open the scoring for the Lions before Aiden O'Brien headed in his first senior goal after half time.
The Bees pulled one back on 85 minutes when Alex Pritchard scored a penalty after Alan Judge was fouled in the box.
And the Lions' relegation worries were intensified as Odubajo blasted home in the final minute.
The result means Millwall's slim hopes of Championship survival look even more remote - the result left the Lions seven points from safety and they have not won since on 10 February.
Despite being the underdogs against play-off chasers before kick-off, it was the Lions that started the stronger as Ed Upson forced a good save from Button in the second minute and Aiden O'Brien had the rebound blocked.
The Bees could have taken the lead when Jota glanced a header off the bar from Alex Pritchard's contentiously-given corner.
That decision was one of the final ones for referee Fred Graham, who was forced off with an 18th-minute injury and replaced in the middle by fourth official Gavin Ward.
Gregory then gave the Lions the lead with his sixth of the season as he coolly rounded Button and side-footed home after Upson had threaded a delightful ball, and the same combination almost doubled the lead six minutes later, but Gregory curled his first-time effort just over the bar.
That miss seemed to galvanise the Bees, who forced visiting goalkeeper David Forde to make good saves from Stuart Dallas, Jonathan Douglas and Alex Pritchard.
But it was Millwall who struck again as 21-year-old O'Brien calmly nodded in Martyn Woolford's cross at the far post.
Brentford applied more pressure, as Judge's cross flashed across the face of goal but failed to get a decisive touch, while Jota had an effort well saved by Forde.
With five minutes left that pressure told as Judge was fouled by Woolford in the penalty area and Pritchard sent Forde the wrong way from the spot.
And Mark Warburton's side ensured they did not suffer a first home loss to Millwall since Boxing Day 2006 when Odubajo fired in from 10 yards out after being in the right place to stop Sid Nelson's clearance.
Gary Taylor-Fletcher almost secured all three points for Millwall in the final seconds of stoppage time, but his effort flashed wide of Button's post.
Brentford boss Mark Warburton: "It could be a valuable point at the end of the season. We were below our best but we have no divine right to turn up at Griffin Park and pick up three points.
"We know Millwall are scrapping hard and we knew it would be a tough test but we never showed our quality in the first half. All round we were below our standards but we showed great character to come back and get something out of it at the end."
Millwall caretaker boss Neil Harris: "I'm gutted for the players, I thought they were outstanding. At 2-0 up with five or six minutes to go you expect to see the game out, but it shows where we are as a club at the moment.
"We're down but we will pick ourselves up. And the positives were there for all to see. All I've asked the players is to give me everything they have got. In the three games I've been in charge so far they have done that and I can't ask for any more."
- 6DeanSubstituted forSmithat 71'minutesBooked at 73mins
- 3BidwellBooked at 76mins
- 20DiagouragaSubstituted forToralat 71'minutes
- 15DallasSubstituted forJudgeat 60'minutes
- 35NelsonBooked at 27mins
- 22O'BrienSubstituted forTaylor-Fletcherat 77'minutes
- 15UpsonBooked at 45mins
- 11WoolfordBooked at 12mins
- 9GregoryBooked at 39mins
- Fred Graham
- Shots on Target
Second Half ends, Brentford 2, Millwall 2.
Attempt blocked. Alan Judge (Brentford) right footed shot from outside the box is blocked. Assisted by Alex Pritchard.
Attempt missed. Gary Taylor-Fletcher (Millwall) left footed shot from the centre of the box is close, but misses to the left. Assisted by Shaun Cummings.
Goal! Brentford 2, Millwall 2. Moses Odubajo (Brentford) right footed shot from the centre of the box to the bottom left corner.
Attempt missed. Alex Pritchard (Brentford) right footed shot from outside the box misses to the left. Assisted by Jota.
Attempt saved. Andre Gray (Brentford) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Jonathan Douglas.
Corner, Millwall. Conceded by Moses Odubajo.
Goal! Brentford 1, Millwall 2. Alex Pritchard (Brentford) converts the penalty with a right footed shot to the top left corner.
Penalty Brentford. Alan Judge draws a foul in the penalty area.
Penalty conceded by Martyn Woolford (Millwall) after a foul in the penalty area.
Corner, Brentford. Conceded by Jos Hooiveld.
Attempt blocked. Jota (Brentford) left footed shot from the right side of the box is blocked. Assisted by Alex Pritchard.
Alex Pritchard (Brentford) wins a free kick in the defensive half.
Foul by Shaun Cummings (Millwall).
Attempt blocked. Lee Gregory (Millwall) right footed shot from the centre of the box is blocked.
Attempt saved. Jota (Brentford) left footed shot from outside the box is saved in the bottom right corner. Assisted by Jonathan Douglas.
Offside, Millwall. Lee Gregory tries a through ball, but Gary Taylor-Fletcher is caught offside.
Attempt blocked. Jota (Brentford) right footed shot from the centre of the box is blocked. Assisted by Jon-Miquel Toral.
Substitution, Millwall. Gary Taylor-Fletcher replaces Aiden O'Brien.
Jake Bidwell (Brentford) is shown the yellow card.
Foul by Jake Bidwell (Brentford).
Lee Gregory (Millwall) wins a free kick in the attacking half.
Tommy Smith (Brentford) is shown the yellow card.
Tommy Smith (Brentford) has gone down, but that's a dive.
Substitution, Brentford. Jon-Miquel Toral replaces Toumani Diagouraga.
Substitution, Brentford. Tommy Smith replaces Harlee Dean.
Goal! Brentford 0, Millwall 2. Aiden O'Brien (Millwall) header from very close range to the bottom right corner. Assisted by Martyn Woolford with a cross.
Alex Pritchard (Brentford) wins a free kick on the left wing.
Foul by Shaun Williams (Millwall).
Substitution, Brentford. Alan Judge replaces Stuart Dallas.
Attempt missed. Aiden O'Brien (Millwall) right footed shot from outside the box misses to the left. Assisted by Lee Gregory with a headed pass.
Offside, Millwall. Aiden O'Brien tries a through ball, but Lee Gregory is caught offside.
Jonathan Douglas (Brentford) wins a free kick in the defensive half.
Foul by Jos Hooiveld (Millwall).
Corner, Millwall. Conceded by Moses Odubajo.
Attempt blocked. Aiden O'Brien (Millwall) right footed shot from the centre of the box is blocked. Assisted by Lee Gregory.
Attempt blocked. Jota (Brentford) left footed shot from the centre of the box is blocked. Assisted by Alex Pritchard with a cross.
Attempt missed. Andre Gray (Brentford) right footed shot from the centre of the box is too high. Assisted by Alex Pritchard.
Hand ball by Martyn Woolford (Millwall).