The home side were reduced to 10 men after Hector Herrera picked up two bookings in the sixth minute of the match.
Read how all the action unfolded below:
6.47pmGood evening, it's around an hour until kickoff at Estadio do Dragao, where Zenit St Petersburg will be looking for their first win of the group stage. Brazilian striker Hulk could lineup against his former team, having made the switch from Porto to the Russian side last summer.
6.50pmIn fact, the team news has just been revealed, and Hulk does indeed start against the Portuguese side. Let's take a look at the full lineups...
6.52pmPORTO STARTING XI: Helton, Danilo, Mangala, Sandro, Otamendi, Herrera, Lucho, Josue, Lica, Fernando, Martinez
6.54pmZENIT STARTING XI: Lodygin, Ansaldi, Lombaerts, Neto, Smolnikov, Shirokov, Shatov, Fayzulin, Hulk, Danny, Arshavin
6.56pmPORTO SUBSTITUTES: Fabiano, Maicon, Defour, Quintero, Ghilas, Varela
6.57pmZENIT SUBSTITUTES: Vasyutin, Criscito, Hubocan, Zyryanov, Bystrov, Tymoshchuk
7pmIt's a strong starting lineup for the visitors, who have the prolific Hulk alonside former Arsenal man Andre Arshavin. Porto have in-form Colombian Jackson Martinez leading their attack. He has seven goals from seven games for the club this season.
7.03pmPorto have a strong history in this tournament, having won on two previous occasions, most recently lifting the cup during Jose Mourinho's spell in charge in the 2003-04 season. However, they've struggled to reach the latter stages of the Champions League in recent years, reaching the quarter-finals once since their 2004 success.
7.06pmThis is Zenit's fifth Champions League campaign, having made their debut in Europe's top club competition in 2008, before featuring for the last three consecutive seasons. The Russians have only once progressed from the group stages at the expense of tonight's opponents in 2011.
7.10pmAhead of this evening's tie, Porto coach Paulo Fonseca told reporters: "It might be a very important game for us, but it is also very important for Zenit. It might be a very important game for us, but it is also very important for Zenit. Our ambition is always the same, no matter the opponent we are facing, we always want to win."
7.14pmMeanwhile, Zenit St Petersburg boss Luciano Spalletti said: "My guys know that they are entirely capable of advancing to the playoff stage. I prefer to think about still getting first place in our group. We are taking Porto very seriously. We have everything we need to play at the highest level."
7.17pmOne notable absentee for the visitors tonight is Belgian midfielder Axel Witsel. The 24-year-old was contentiously sent off during their draw with FK Austria Vienna last month, resulting in him being suspended for tonight's clash.
7.21pmElsewhere in group G this evening, leading Atletico Madrid travel to Austria Vienna. Assuming the Spanish side win, Porto will be hoping to take all three points to remain just one win from the top of the group.
7.24pmDomestically, Porto are in strong form, having claimed top port in the Primeira Liga after just seven matches, winning six times and drawing once. The side also has a 100% record at home this season.
7.28pmZenit also top their division, with 32 points from their first 13 games in the Russian Premier League this season. Miguel Danny and Hulk have both been in strong goal-scoring form so far this season, scoring 16 goals between them.
7.33pmWhile Zenit knocked Porto out of this competition two years ago by holding them to a draw in the group stage, the home side have never lost to tonight's opponents. However, they have played to goalless draws on five occasions.
7.37pmPREDICTION! As we're not that far from kickoff, it's time to miss a prediction. While these two sides have a history of draws, Porto know that a win is vital if they're to maintain any hopes of progressing as group winners. With that in mind, I think this should be a narrow 2-1 win for the Portuguese side.
7.40pmIt's nice to see that the Porto fans still think fondly of former striker Hulk. One supporter at the game this evening is holding up a banner that reads "We miss Hulk". I wonder whether that will make it out of the ground in one piece if he scores this evening.
7.42pmHere come the teams! Both sides have just headed out of the tunnel ready for this evening's contest, as the Champions League anthem fills the stadium.
1 minZenit get the first half underway.
3 minIt's the visitors who are seeing all the ball in the opening couple of minutes, but they can't break through the Porto defence to create an early chance. Porto win it back in midfield, as Josue curls it into the box looking for Martinez, but Lodrigin comes off his line for a comfortable take. The hosts are certainly looking the more dangerous on the ball at the moment.
5 minCHANCE! Alex Sandro makes a brilliant run out from the back before attempting a shot from the edge of the box. It doesn't look like his strike would have troubled the Zenit goal, but it's deflected for a corner. Danilo goes for a header from the corner, but it's punched away decisively by Lodigin.
6 minBOOKING! Hulk bursts down the other end from the clearance from the corner as he tried to catch out his old team on the counter, but he's hacked down by Hector Herrera, who is booked for the incident.
6 minRED CARD! Herrera secures his second yellow in a minute for encroaching during the free kick. It's a bold decision by the referee, but according to the rule book it's the right call. It's going to be a long night for the hosts!
8 minOn the second time of asking, Hulk unleashes a powerful effort with his left boot from the free kick, but the wall does it's job, and it's well cleared by the Porto defence.
11 minCHANCE! The ball is played into the Porto box for Shirokov, who delicately chips it on for Danny, but the Portugese winger can't control the ball in time. Hulk takes the ball back in for Hulk but slices his finish just wide. It looks like the Russian side are trying to take advantage of their numerical advantage over the hosts.
14 minPorto win a free kick in a strong postition when Cristian Ansaldi drags down Lica. The home side look to see if the referee is going to reach for a yellow, having been quick to brandish the cards at the other end, but the Zenit defender gets away with it this time. Martinez drives the ball towards the visitors' goal from 20 yards out, but it goes well high of the crossbar.
17 minHerrera's double booking inside six minutes is in fact the fastest sending off for two yellows in Champions League history. That probably won't be an achievement that he boasts about in the dressing room.
20 minOFF THE POST! Lucho tries to volley the ball in for Porto, and it looks good, beating Lodigin, but it's denied by the post. The rebound drops to Fernando, who Lica, who tries to curl it in from the middle of the box, but it sails fractionally wide. Despite being down to 10, Porto still look dangerous on the attack.
23 minThe home side win a free kick around 30 yards out after Josue is brought down by Shatov. The Portuguese international delivers it into the penalty area, where Porto have numbers waiting, but it's Smolnikov who gets to it first, making a good clearance for the visitors.
26 minZenit manage to win a corner as Hulk tries to apply pressure on the edge of the box, but Danny's ball back is is easily cleared. Arshavin plays it back in for the midfielder, but he hits his shot too hard, and it goes high into the stands. Zenit haven't quite shown the same level of intent in front of goal as they're opponents so far tonight.
30 minThere's an injury concern for the visitors as Lucho Gonzalez and Smolnikov clash knees in midfield, leaving the Zenit defender clasping his leg on the ground. He manages to make his way to the sideline for treatment though, so he should be alright to carry on.
32 minPorto have been surprisingly attacking since the sending off of Herrera in the sixth minute, it looks like they're going all out to get a goal before sitting back on defending, and it's caused some problems for their opponents, who aren't reacting well to Porto's style of play.
33 minLucho looks to get involved up front again as he fires the ball forward for Lica, but his teammate is being closely marked, and he can't get his head to the ball.
35 minLica and Josue link up on the edge of the box, with the latter flicking in in towards Lucho, but his delivery has too much pace for the midfielder, and it goes harmlessly out.
36 minBOOKING! Viktor Faizulin is shown a yellow card for colliding into Fernando. He'll have to be careful for the rest of the match as the referee has already shown that he's not afrais to make a sending off.
39 minCHANCE! Hulk shows some impressive footwork as he tries to create a chance for Zenit, but he's met by a line of defenders before he can break into the Porto box. He manages to get himself back into a strong position moments later, this time finding Danny, who in turn passes to Shirokov, who blasts the ball wide.
42 minZenit are finishing the half strongly as they apply sustained pressure inside the Porto box for the first time this evening. It would be a good time to take the lead.
42 minBOOKING! The referee's yellow card makes yet another appearance as Shirokov is cautioned for a sliding tackle on Lica.
45 minThe visitors are continuing to run at the Porto defence. Hulk makes a brilliant run into the box, before getting trapped on the goalline. He manages to create enough space to pull in back, but he has no support in the box, allowing the home side an easy clearance. It's a waste of a good chance for the Russian side.
45 minHALF TIME: FC Porto 0-0 Zenit St Petersburg
8.33pmWell there were no goals in the first half but plenty of talking points. Despite Hector Herrera managing just six minutes before being sent off for a second bookable offence, Porto had the better of the chances in the opening 45 minutes, as Zenit seemed surprised by their aggressive play.
8.37pmThe referee has had a busy half, handing out four yellow cards and one red so far this evening. Herrera's sending yellow may have seemed harsh, but is a bookable offence according to the rule book, and it has resulted in walls being extremely well disciplined in subsequent free kicks this evening.
8.41pmLet's have a look at some of the statistics from the opening period. The sides split the possession 50-50, but Porto had 11 chances to the visitors' six. So far their hasn't been a shot on target from either side, but Lucho Gonzalez did strike the post for Porto.
8.44pmZenit showed plenty of intent towards the end of the first half, but have relied too much on Hulk to create the chances, with Arshavin and Danny seeing little time on the ball.
8.45pmThe teams are heading back out ready for the second half.
46 minPorto kick off the second half.
47 minPorto make a lively start to the second spell as Lica picks up the ball just inside the box, and goes for a header, forcing a save from Lodigin.
49 minThe visitors look to stretch Porto on the break, as Hulk carves out another chance inside the box, but Mangala is on hand to block the Brazilians effort. The Portuguese side quickly head back up the other end, where they force a corner, but Lucho fires well wide. It's been a lively start by both sides.
52 minElsewhere in the group, Atletico Madrid are starting their second half with a 2-0 lead over Austria Vienna. That should inspire Porto to continue pushing for the win, despite being down to 10.
53 minSUB! Porto make the first change of the match, bringing off Lica for Silvestre Varela. It's a surprise as Lica had been one of the home side's best players in the first half, so he must have picked up a knock.
55 minCHANCE! Varela has made an impact within a couple of minutes of coming off the bench, beating two Zenit defenders on the edge of the box before blasting the ball just wide.
58 minCHANCE! Hulk makes a superb run after dispossessing Otamendi. The former Porto player has just Helton to beat but the Porto keeper just gets his boot to it to force it wide. Helton has certainly spared the blushes of his teammate.
63 minZenit are enjoying a pretty decent spell at the moment. While Hulk's effort just a few minutes ago has probably been the only time they're really troubled the Porto defence, they've managed to keep themselves inside the home side's half for much of the last five minutes, and are keeping the Portuguese side from seeing the ball.
65 minSUB! Andre Arshavin, who really has been pretty anonymous this evening, makes way for Konstantin Zyryanov.
68 minCHANCE! It's another good chance for Hulk as he unleashes a rocket from 35 yards, but Helton has enough time to make the save. The visitors get two corners from the initial chance but can't capitalise, as Porto eventually clear the ball.
70 minCHANCE! Hulk shows brilliant awareness as he spots Helton off his line and goes for another effort from distance, but again the Porto keeper is alert. The Brazilian comes up to take the corner, but Helton is able to grab the ball before it can drop for any of Hulk's teammates.
72 minBOOKING! Lucho Gonzalez picks up a yellow card for a foul on former teammate Hulk. It gives Zenit a free kick in a good position.
72 minSUB! Kerzhakov comes on in place of Shirokov, who heads straight down the tunnel.
73 minCHANCE! Hulk lashes he free kick towards goal, and it takes a slight deflection off the wall, but Helton manages to make a comfortable save.
74 minBOOKING! Jackson Martinez, running towards the Zenit goal, manages to hack Smolnikov down, earning him a booking.
75 minSUB! Steven Defour takes the place of Josue. Porto will be hoping that the fresh legs help them end this dominant spell from the visitors.
79 minOFF THE BAR! Varela whips one in from the edge of the box. Lodigin reaches high as he tries to make the save, but it's actually the crossbar that keeps it out. The midfielder has looked Porto's best option for a goal since replacing Lica early in the second half.
80 minSUB! Smolnikov goes off as the visitors make their final change, sending on Criscito in his place.
81 minLucho brings down Hulk again, earning himself a final warning from the referee. The Brazilian looks for goal again, but Otamendi makes a superb block to deny the former Porto star.
83 minZenit are still pressing as time runs out at Porto, the visitors have certainly upped their game in the second half after a lucklustre opening 45 minutes.
85 minGOAL! Porto 0-1 Zenit (Kerzhakov)
85 minZenit's pressure finally pays off. Unsurpsingly, it's set up by Hulk, who places his cross perfectly for Alexander Kerzhakov, who simply has to tap it in from close range to put the Russians ahead.
87 minCHANCE! Far from letting their heads drop, Porto are quickly in the hunt for an equaliser, as Danilo forces a save from Lodigan, before Ghilas looks to put it in from the corner.
88 minLodigin has been left with a nasty head wound after taking an accidental elbow from Martinez. There's plenty of blood gushing from the keeper's brow. Zenit have already used all of their subs so there could be a late twist if he can't continue.
90+1 minLodigin is still down and receiving treatment, it doesn't look good for the Zenit keeper. The Porto fans are booing are they're keen to get on with it. The keeper has now been patched up, and it looks like he's going to try to make it to the final whistle.
90+3 minBecause of the lengthy delay for Lodigin's injury, there are five minutes of stoppage time to be played.
90+4 minCHANCE! Porto quickly win a free kick, which Helton comes up to take. Otamendi manages to get a shot away just inside the box, but it's scuffed, giving Lodigin a comfortable save.
90+7 minCHANCE! It's a golden opportunity for Varela, as he has plenty of space inside the penalty area, but his shot is deflected wide. Nothing comes from the corner, and that should be about it.
90+7 minFULL TIME: FC Porto 0-1 Zenit St Petersburg
9.41pmSo a late goal from Alexander Kerzhakov helps Zenit St Petersburg to a 1-0 win over Porto. The home side came close to equaliser several times in the final minutes of the clash, but a strong performance from goalkeeper Juri Lodigin, who finished the game with a nasty head injury, ensured a clean sheet for the Russian side.
9.43pmDespite losing a man after just six minutes, Porto had looked the stronger side in the first half, but an impressive display led by Hulk ensured that Zenit had the majority of the chances after the break, eventually breaking the deadlock.
9.45pmWith Atletico Madrid comfortably winning their match tonight, Porto now sit five points behind the group leaders, while Zenit move a point clear of group G strugglers Austria Vienna.
9.47pmThat's all from this match, but stick around for full-time reports and reaction from all of this evening's games in the Champions League, and join us again tomorrow as the tournament continues, with Manchester United, Manchester City and Real Madrid all in action. Until then, thanks for joining me this evening, goodbye.