Barnard muscled in at the near post to ram home a cross from fellow substitute Ndiaye Papa Waigo.
Elliott Bennett drove the Seagulls ahead after 12 minutes after skipper Andrew Crofts laid the ball back to him on the edge of the area. But Dean Hammond levelled four minutes before the break when keeper Peter Brezovan failed to come for a free-kick by Jason Puncheon and the former Brighton midfielder headed in from close range.
Brighton introduced winger Kazenga LuaLua after 58 minutes and eight minutes later he brilliantly crossed over the top of the defence for substitute Ashley Barnes to head in off the far post.
Hammond had a late shot well saved by Brezovan before Barnard pounced to give Saints a hard-earned point.
Brighton received an injury blow when defender Marcos Painter, on loan from Swansea, was stretchered off in stoppage time with a leg injury.