Former Porto favourite Hulk was both hero and villain as Zenit St Petersburg remained on course to progress to the knockout stages of the Champions League.