Thomas Bruns almost doubled his side's advantage as he drilled a strike at goal from the edge of the box, but his effort clattered off the crossbar and went over.
In the second half, Ryan Thomas threatened for Zwolle as he raided inside the area, but his strike was well saved by Castro.
Veldwijk had a great opportunity to bring his side level late in the game when he latched on to a cross from the right, but he put his diving header over the bar.
Paul Gladon could have sealed the win for the visitors as he fired low towards the bottom corner, but he was denied by Kevin Begois, while at the other end Nijland sent his effort wide.
The home side pushed for an equaliser and were rewarded in the dying seconds of the match when Nijland found the net to salvage a point from the contest.
The result leaves Zwolle in seventh place, while Heracles move above PSV Eindhoven in third.