Barnet's 89 hardy travelling fans were rewarded as Jason Puncheon's stunning late winner earned the Bees the points.
The home side had early chances, Michael Symes bringing a brilliant save from Lee Harrison and Stewart Drummond firing over from 10 yards.
When Harrison was injured 17 minutes from time, Ross Flitney took over.
Puncheon had had three attempts saved by Scott Shearer before his left-footed volley from 20 yards with eight minutes left settled the match.
Shrewsbury: Shearer, Herd, Hope, Langmead, Ashton, Davies, Drummond, Edwards, Thomas (Humphrey 56), Cooke, Symes.
Subs Not Used: MacKenzie, Hall, Burton, Fortune-West.
Booked: Drummond, Ashton.
Barnet: Harrison (Flitney 72), Devera, King, Yakubu, Gross, Cogan, Bailey, Sinclair, Graham (Charles 76), Puncheon (Warhurst 90), Birchall.
Subs Not Used: Nicolau, Vieira.
Booked: Gross, Yakubu.
Goals: Puncheon 82.
Att: 3,620
Ref: A Penn (W Midlands).