Lejonen såg den farligare sidan i det tidiga skedet och erfarna anfallaren Steve Morison två gånger pressade ansträngningar över ribban.
Det var lite goalmouth action i båda ändarna tills Millwall bröt dödläget i 35: e minuten.
Morison hjälpte till med en frikick från Tony Craig och den centrala försvararen Byron Webster sköt ett skott på vändningen från 15 meter in i nedre hörnet av nätet.
Shrewsbury nästan utjämnades tidigt i andra halvlek men att besöka höger tillbaka Mahlon Romeos tillstånd från Shaun Whalleys kors gick precis över baren.
Millwall fördubblade sin fördel i 77: e minuten, Shaun Hutchinson vända i lös boll från nära håll efter Shrewsbury inte kunde rensa Shane Fergusons frikick.
Shrewsbury, nu utan vinst i sex matcher, tog en sen tröst när Whalley, inrättad av Stephen Humphrys, klämde ett skott förbi målvakt Tom King.
Millwall är nu bara utanför play-off platser på målskillnad medan Shrewsbury förblir i nedflyttningszonen.
Matchrapport från Pressföreningen.
Matchen slutar, Shrewsbury Town 1, Millwall 2.
Andra halvlek, Shrewsbury Town 1, Millwall 2.
Tony Craig (Millwall) visas det gula kortet för en dålig foul.
Shaun Whalley (Shrewsbury Town) vinner en frispark på högerkanten.
Foul av Tony Craig (Millwall).
Försök missade. Shaun Whalley (Shrewsbury Town) vänster fotade skott från höger sida av lådan är hög och bred till vänster.
Mat Sadler (Shrewsbury Town) vinner en frispark i den defensiva halvan.
Foul av Steve Morison (Millwall).
Mål!  Shrewsbury Town 1, Millwall 2. Shaun Whalley (Shrewsbury Town) höger fotade skott från höger sida av sex yard box till nedre vänstra hörnet. Hjälpt av Stephen Humphrys.
Substitution, Millwall. Callum Butcher ersätter Shane Ferguson.
Hörnet, Shrewsbury Town. Förföljd av Shaun Hutchinson.
Försök missade. Mat Sadler (Shrewsbury Town) höger fotade skott från höger sida av lådan missar till höger.
Shaun Hutchinson (Millwall) visas det gula kortet.
Försöket räddades. Alex Rodman (Shrewsbury Town) höger fotade skott från utsidan boxen sparas i nedre högra hörnet.
Substitution, Millwall. David Worrall ersätter Jed Wallace.
Foul av Aristote Nsiala (Shrewsbury Town).
Fred Onyedinma (Millwall) vinner en frispark på vänsterflygeln.
Mål!  Shrewsbury Town 0 och Millwall 2. Shaun Hutchinson (Millwall) höger fotade skott från mitten av lådan till nedre vänstra hörnet.
Substitution, Shrewsbury Town. Stephen Humphrys ersätter Tyler Roberts på grund av en skada.
Foul av Gary Deegan (Shrewsbury Town).
Ben Thompson (Millwall) vinner en frispark i anfallshalvan.
Försök missade. Steve Morison (Millwall) höger fotade skott från höger sida av lådan missar till vänster.
Foul av Gary Deegan (Shrewsbury Town).
Shane Ferguson (Millwall) vinner en frispark i defensiva halvan.
Substitution, Millwall. Fred Onyedinma ersätter Aiden O'Brien.
Substitution, Shrewsbury Town. Tyler Roberts ersätter Freddie Ladapo.
Jack Grimmer (Shrewsbury Town) vinner en frispark på högerkanten.
Foul av Shane Ferguson (Millwall).
Mat Sadler (Shrewsbury Town) vinner en frispark på vänsterkanten.
Foul av Aiden O'Brien (Millwall).
Stefan Payne (Shrewsbury Town) vinner en frispark i den defensiva halvan.
Foul av Mahlon Romeo (Millwall).
Försök missade. Ben Thompson (Millwall) höger fotade skott utanför lådan missar till höger.
Alex Rodman (Shrewsbury Town) vinner en frispark i defensiva halvan.
Foul av Jed Wallace (Millwall).
Steve Morison (Millwall) visas det gula kortet.
Alex Rodman (Shrewsbury Town) visas det gula kortet.
Alex Rodman (Shrewsbury Town) har gått ner, men det är ett dyk.
Försöket räddades. Steve Morison (Millwall) huvud från mitten av rutan sparas i mitten av målet.
Foul av Alex Rodman (Shrewsbury Town).
Millwalls play-off-laddning ökade takten med en vinst på att kämpa mot Shrewsbury.