However, Porto dominated proceedings with 26 shots at goal throughout the game, but the hosts struggled to find a way through the Austrian outfit's defence.
© Getty Images
Indeed, they were nearly made to pay when Vienna appealed for a penalty when the ball brushed Danilo's arm, but the referee didn't see it as deliberate hand ball.
The Portuguese side found an equaliser just after the interval when a Eliaqum Mangala header found Jackson Martinez who nodded with Austria keeper Heinz Lindner stranded.
Martinez nearly found a winner seven minutes from time, but his header was inadvertently turned wide by teammate Mangala.
The result means that Porto's fate is out of their hands as Zenit only need to match their result to reach the last 16.