MILLWALL lost at home for the second time in four days as Louis Dodds' first-half winner gave Shrewsbury Town the three points at The Den.
Adam El-Abd cleared Lee Gregory's prod towards goal off the line before Shrewsbury went ahead moments later as Dodds beat Jordan Archer from inside the box.
Fred Onyedinma saw a shot blocked before Shrews defender Ryan McGivern nicked the ball off the attacker's toe as he was about to shoot in the box. After Shane Ferguson recycled the attack and crossed, Jayson Leutwiler saved Harry Smith's header from close range.
Leutwiler came to his side's rescue again in the 34th minute when he stretched to tip over after El-Abd had inadvertently sent Ferguson's cross towards goal. From the corner Jim O'Brien cleared Tony Craig's header off the line.
After the break El-Abd slid to block Gregory's effort in the box and as Millwall started to pin their opponents back in their own half Joe Martin shot from 30 yards but Leutwiler made a relatively comfortable save.
Lions boss Neil Harris introduced Aiden O'Brien for Martin shortly after that with Ferguson dropping to left-back. In the 70th minute O'Brien had a chance to add to his nine goals this season but dragged his shot wide at the near post. With 15 minutes left O'Brien linked up with Gregory who struck from 15 yards but again Leutwiler produced an impressive save.
With four minutes left Smith had a glorious chance to equalise, but he seemed to be taken by surprise as Thompson's cross came through a thicket of players and he scooped the ball over from inside the six-yard box.
In added time Tony Craig found himself free six yards out but headed Ferguson's free-kick wide.
Millwall went into the game having won nine of their last 13 fixtures in all competitions. They were still struggling to keep clean sheets, though, with just three in 19 in the league before today.
Byron Webster missed out through injury and that meant Sid Nelson continued alongside captain Craig in the centre of the Lions defence. It was a big test for Nelson after he had been taken off in the 3-1 defeat to Wycombe and exchanged words with a section of the home support.
It says something of Harris' belief that Nelson has the mental strength to cope. He made his debut two years ago and is still only 20, and it was surely too much too soon when Ian Holloway named him captain when he was only 18.
He had an uncomfortable start here when Dodds ran at him in the first minute, stooping to try to head clear rather than putting his foot on the ball. But a headed clearance and then a block from the follow-up shot settled him.
It was probably after Millwall's best period of the first half that Shrewsbury went ahead. Seconds after Gregory had in one movement controlled a long pass from Shaun Williams only to see El-Abd clear his effort off the line, Dodds played a one-two with Ivan Toney that opened up Millwall's defence and the attacker slid his finish past Archer.
Striker Toney, on loan from Newcastle, had been booked 11 times in 22 games before Saturday, and from his first-half performance it was evident why that was a more prolific output than his goal tally this season. He screwed one shot wide and a couple of other Shrewsbury moves broke down at his feet.
Both sides were giving away plenty of chances, and Harris would probably have been justified in feeling his side were unlucky to have been behind at the break. But Shrewsbury had kept five clean sheets in eight games since Paul Hurst took charge in October, and Leutwiler, El-Abd and O'Brien illustrated their defensive desire.
Harris brought on O'Brien for Martin as Millwall continued to dominate the second half. But too many times attacking moves were breaking down to increase the frustration of the Den support.
Harris made another attacking switch as Calum Butcher came on for Nelson with Williams moving into the centre of Millwall's defence. And after Onyedinma couldn't get a cross in when he had beaten George Grimmer, Harris sent on David Worrall in his place. With six minutes to go Worrall crossed from the right but neither Smith nor O'Brien could connect with the ball from a few yards out.
Craig had a better chance late on and Archer went forward for a corner in the last minute, but the ball ended up in the arms of Leutwiler before Gregory saw two shots blocked as Shrewsbury hung on.
Image source: ©Millwall FC