St. Marys tops Punxsy behind late surge