The Russians are currently in second place in the table, one point above Porto and five points behind leaders Atletico Madrid.
However, victory for Porto would see the Portuguese champions put themselves back in contention to qualify for the last 16.
Zenit earned a late 1-0 win when the teams met at the Estadio do Dragao two weeks ago.
Possible starting lineups
Zenit: Lodygin; Smolnikov, Neto, Lombaerts, Criscito; Faizulin, Shirokov, Shatov; Arshavin, Danny; Hulk
Porto: Helton; Otamendi, Mangala, Danilo, Sandro; Gonzalez, Fernando, Ghilas, Varela; Martinez, Pereira
Sports Mole says: 2-2