Ben Herd headed a last-minute equaliser for Shrewsbury in a bad-tempered match which saw both sides reduced to 10 men.
The home side went ahead after 12 minutes from Colin McMenamin's penalty, but Nick Bailey quickly levelled from the spot after Neil Ashton's handball.
Louis Soares struck for Barnet, before Shrewsbury's Jamie Tolley was dismissed for a wild tackle on Bailey.
Barnet's Ismail Yakubu was sent off for a foul on Ashton before the Herd nodded home from close range at the end.
Shrewsbury: Hart, Herd, Walton, Hope, Ashton, Tolley, Denny (Whitehead 69), Sorvel, Sharp, Darby (Stallard 69), McMenamin.
Subs Not Used: Smith, Thompson, Hogg.
Sent Off: Tolley (62).
Booked: Darby.
Goals: McMenamin 12 pen, Herd 90.
Barnet: Flitney, Yakubu, King, Charles, Batt, Soares, Sinclair, Lee, Bailey, Strevens (Bowditch 88), Grazioli (Hatch 88).
Subs Not Used: Tynan, Graham, Gross.
Sent Off: Yakubu (80).
Booked: Lee, King.
Goals: Bailey 14 pen, Soares 30.
Att: 3,628
Ref: S Mattieson (Stockport).