© Getty Images
The visitors did go in front midway through the first half when Danilo this time crossed to the back post, where Lucho Gonzalez headed down into the ground and into the corner of the net.
Porto's lead only lasted five minutes as former player Hulk levelled by capitalising on some hesitant defending to round Helton and pass into an empty net.
The Brazilian then had a golden opportunity to put Zenit ahead from 12 yards after Nicolas Otamendi blocked a cross with his hand, but his penalty was saved by Helton.
Zenit continued to pile on the pressure in the remaining minutes as Andrey Arshavin spurned the best chance of the closing stages as the match finished level.
A point sees Zenit move to five points from four games, with Porto are a point further back in third place.
The other match in Group G later this evening sees top-of-the-table Atletico Madrid face bottom side Austria Vienna. Victory for the Spanish club will guarantee their place in the last 16.