Paulo Fonseca's men know victory against the Spaniards at the Vicente Calderon is essential if they are to avoid crashing out of Europe's premier club cup competition.
Porto heads to Atletico Madrid on Wednesday knowing only a win will give it a chance of progressing in the Champions League.
The Primeira Liga club currently sits one point behind Zenit in Group G, but the head-to-head record between the sides means Paulo Fonseca's men need to pick up three points and hope that the Russians fail to beat Austria Vienna.
Atletico is already through to the knockout stages, having won four out of four prior to a 1-1 draw at Zenit last time out.
It was the Liga club that came out on top when these sides met in Portugal on October 1, Diego Godin and Arda Turan finding the net in a 2-1 victory in Portugal.
The Primera Division's second-placed club has won nine successive games at home since being held to a 1-1 draw by Barcelona in the first leg of the Supercopa de Espana in August.
It has also won 16 of its last 19 fixtures in all competitions, aided by striker Diego Costa, who has netted 15 goals in as many Liga appearances.
Porto, meanwhile, has endured a disappointing Champions League campaign so far. A tally of one point from three home games represents its worst return in the competition.
Porto’s 53-match unbeaten run in its domestic league also came to an end recently, with a 1-0 defeat at Academica on November 30.
The reigning Portuguese champions had won 42 and drawn 11 during their terrific sequence of results.
Both Porto and Atletico enjoyed victories in their most recent domestic fixtures, though, with the former overcoming Braga 2-0 in the league and Diego Simeone's men hammering Sant Andreu 4-0 in the Copa del Rey at the weekend.
Nabil Ghilas recovered from a muscle problem in time to appear on the bench for Porto on Saturday and could feature this time around as Fonseca has a full squad to choose from. Atletico's only absentee is Juanfran, who is serving a one-game ban.