Full-time from The Den
Ben Thompson hit a Goal of the Season contender as Millwall produced a sizzling second-half display to overcome Shrewsbury at The Den.
The Lions went in at the break trailing to Larnell Cole's fourth-minute goal following a lethargic first-half display in which Neil Harris' charges looked to be heading to a first home defeat in eight games.
But the introduction of Aiden O'Brien at half-time sparked Millwall into life, and once midfielder Thompson had volleyed home a spectacular equaliser on 57 minutes The Lions took control with Steve Morison (61mins) and an injury-time penalty from Lee Gregory (90+1mins) securing victory.
Boss Harris made just one change to his starting line-up with Shane Ferguson replacing Aiden O'Brien on the left flank, and the latter dropping to the bench.
Millwall had gone an astonishing 450 minutes without conceding a goal at The Den, but it took Shrewsbury less than five minutes to breach the defence.
The warning signs had already been there with Kyle Vassell's long-range effort flying over the bar and Micky Demitrou volleying wide from Jack Grimmer's searching pass.
But The Lions failed to heed those early warnings and found themselves a goal behind when Sullay Kaikai's superbly threaded ball split the home defence and picked out Cole, who strode forward and made no mistake with a crisp finish that gave Archer no chance.
Millwall, who really struggled to find any real momentum in the opening half, did create a couple of half chances, but no more than that in a frustrating opening 45 minutes.
Ferguson's 19th-minute corner was met by the head of Mark Beevers, but his effort was clawed away at the base of the post by Mark Halstead.
Morison's half volley flew wide of the mark before keeper Halstead came to the rescue in injury-time, acrobatically tipping Shaun Williams' header
from a Ferguson free-kick away for a corner.
Harris brought on O'Brien for Joe Martin at the break, with Ferguson moving to left-back.
This really did prove to be a classic game of two halves and The Lions looked much more like their usual selves during a sparkling second 45 minutes in which they dominated.
Thompson set The Den alight with an absolute belter of an equaliser 12 minutes after the restart, chesting down a loose ball and letting fly with a cracking volley into the top corner that gave Halstead no chance.
Just four minutes later a teasing corner from Taylor picked out Morison, who planted a firm header home as The Lions made a spell of intense pressure pay off.
Hard as Shrewsbury tried, they got no change from a resilient rearguard in which Webster and Beevers produced a succession of defensive headers, tackles and blocks to frustrate the lively Cole and Kaikai.
Beevers had a chance to make it 3-1 on 66 minutes, only to volley over following another Taylor corner, and then a wonderful run from Thompson down the left nearly produced another goal when his cross was headed narrowly wide by Gregory.
Mahlon Romeo had appeals for a penalty turned down when he looked to be tripped following another rampaging run down the right. Moments later the right-back's deep cross was punched clear by Halstead straight into the path of Morison, whose header was palmed over for a corner.
A third goal was always on the cards, and it duly arrived in the dying seconds when a woeful back pass was intercepted by Gregory, who drove forward only to have his run brought to an abrupt halt by Halstead, whose lunge sent Gregory sprawling and earned the keeper a straight red card.
Shrewsbury had used all three substitutes already so Demetriou took over the keeper's jersey and although he dived the right way, could not keep out Gregory's resulting spot-kick as the striker buried his penalty into the bottom right corner.
It was Gregory's 24th goal of the season and although it put the seal on the victory, Thompson's effort will live long in the memory of Millwall fans.
Millwall: Archer, Romeo, Martin (O'Brien, 46mins), Beevers, Webster, Williams, Thompson, Ferguson, Gregory (Upson, 90+2mins), Morison, Taylor. Subs not used: Forde, Onyedinma, Nelson, Abdou, Philpot.
Booking: Morison (31mins)
Scorers: Thompson, (57mins), Morison (61mins), Gregory (90+1mins)
Shrewsbury Town: Halstead, Sadler (Mangan, 64mins), Black (Wellens, 45+1mins), Vassell (Akpa Akpro, 65mins), Kaikai, Grimmer, Ogogo, Demetriou, Hendry, Cole, Smith. Subs not used: Leutwiler, Whalley, Wesolowski, Clark.
Bookings: Hendry (42mins), Dem
9,583 (away 560)
Tweets by @MillwallFC