Match ends, Millwall 1, Bolton Wanderers 1.
Martyn Woolford scored a late leveller to earn Millwall a point against fellow strugglers Bolton.
The visitors took the lead against the run of play when Lukas Jutkiewicz headed home a Chris Eagles cross.
Jutkiewicz could have extended his side's lead but home keeper David Forde was equal to his spot-kick.
The Lions made the most of that let off when Woolford, who had earlier had an effort cleared off the line, fired in from a tight angle to level.
The hosts had started strongly and Jermaine Easter came close to opening the scoring when his dipping effort drifted just past a post.
Bolton went in front when Jutkiewicz showed good strength to get across his man and head home his second goal since joining the club on loan from Middlesbrough.
Woolford thought he had levelled for the hosts before the break but defender David Wheater made a brilliant goal-line clearance to deny him after his shot had beaten goalkeeper Adam Bogdan.
Alex Baptiste was then on hand to deny Easter on the line after Bogdan had parried an effort into his path.
Having survived until the interval, Dougie Freedman's side came close to doubling their lead when Eagles' free-kick came back off an upright.
After Woolford had gone close again, the visitors were presented with a chance to seal victory when home defender Danny Shittu was adjudged to have handled in the area. However, Republic of Ireland international Forde kept out Jutkiewicz's tame effort.
He, and Bolton, were made to pay when Woolford reacted quickest to convert after Bogdan saved from Simeon Jackson.
Wanderers have now gone nine games without a win, while a point moves Ian Holloway's side four points clear of the Championship's bottom three.
Millwall boss Ian Holloway:
"I'm deadly serious when I say you would be bored senseless watching that kind of performance from them (Bolton). If that's how you set out to play when people pay a lot of money to watch I'd be bored senseless.
"The penalty save gave us the lift we needed. We got a couple of things wrong today when we overplayed a bit but the fans were brilliant and didn't get on our backs.
"They had one cross, one diving header and it went in off the post. And then they got a penalty.
"But it was a massive save. Everything is massive for us at this point.
"We're getting fitter and more confident. It's all about scrapping but we scrapped with style today."
Bolton boss Dougie Freedman:
"I'm not really happy with a point because I felt that we controlled the game very well in the first half.
"We got a good goal with a great cross and great header.
"Then in the second half we defended very well but we missed chances when we hit the post and then the penalty miss so I felt we deserved the three points."
- 28MaloneBooked at 64mins
- 3ShittuBooked at 77mins
- 13MartinSubstituted forCampbellat 57'minutes
- 15UpsonBooked at 51minsSubstituted forMcDonaldat 56'minutes
- 8EasterSubstituted forJacksonat 56'minutes
- 16DaviesBooked at 79minsSubstituted forKnightat 79'minutes
- 21PratleySubstituted forLeeat 90+1'minutes
- 7EaglesBooked at 33minsSubstituted forDannsat 73'minutes
- Simon Hooper
- Shots on Target
Second Half ends, Millwall 1, Bolton Wanderers 1.
Attempt missed. Martyn Woolford (Millwall) right footed shot from outside the box misses to the right. Assisted by Steve Morison.
Foul by Scott McDonald (Millwall).
Alex Baptiste (Bolton Wanderers) wins a free kick in the defensive half.
Attempt missed. Lukas Jutkiewicz (Bolton Wanderers) right footed shot from the centre of the box is close, but misses to the right. Assisted by Lee Chung-Yong with a cross.
Substitution, Bolton Wanderers. Lee Chung-Yong replaces Darren Pratley.
Foul by Shaun Williams (Millwall).
Darren Pratley (Bolton Wanderers) wins a free kick in the defensive half.
Attempt missed. Danny Shittu (Millwall) right footed shot from outside the box is high and wide to the right. Assisted by Shaun Williams with a headed pass.
Attempt blocked. Shaun Williams (Millwall) left footed shot from outside the box is blocked. Assisted by Scott McDonald.
Offside, Millwall. Martyn Woolford tries a through ball, but Steve Morison is caught offside.
Attempt blocked. Martyn Woolford (Millwall) left footed shot from outside the box is blocked.
Attempt missed. Matthew Mills (Bolton Wanderers) right footed shot from outside the box misses to the left. Assisted by Neil Danns.
Corner, Bolton Wanderers. Conceded by Scott McDonald.
Goal! Millwall 1, Bolton Wanderers 1. Martyn Woolford (Millwall) left footed shot from a difficult angle on the left to the bottom right corner.
Attempt saved. Simeon Jackson (Millwall) left footed shot from very close range is saved in the centre of the goal. Assisted by Steve Morison with a cross.
Substitution, Bolton Wanderers. Zat Knight replaces Mark Davies.
Mark Davies (Bolton Wanderers) is shown the yellow card.
Attempt missed. Scott Malone (Millwall) left footed shot from outside the box misses to the right. Assisted by Scott McDonald.