Zenit St Petersburg and Porto both kept alive their hopes of reaching the last 16 in the Champions League on Wednesday with a 1-1 draw at the Stadion Petrovski in Group G.
Lucho Gonzaloez gave the visitors a 22nd-minute lead before former Porto striker Hulk levelled things up soon after.
Hulk had the chance to win the game for Zenit in the second half, but his penalty was saved by Helton.
Read Sports Mole's minute-by-minute report below to find out how the action unfolded.
Hello there and welcome to Sports Mole's live text coverage as Zenit St Petersburg host Porto in Group G of the Champions League.
If we have a winner tonight then they will take a big step towards the last 16 of the competition. Atletico Madrid look to be running away with Group F following three wins out of three, but the second qualification spot is very much up for grabs.
Zenit are currently in second place in the standings with four points, while Porto are just one point behind in third place.
These two teams played in Portugal two weeks ago, with Zenit claiming a 1-0 win courtesy of Aleksandr Kerzhakov's goal four minutes from time. That has put the Russians in a strong position with regards to making the last 16, but a victory for Porto tonight would change everything.
We're just waiting for the team news from both sides and will bring it to you as soon as we get it.
ZENIT: Lodigin; Ansaldi, Hubocan, Lombaerts, Criscito; Fajzulin, Witsel; Sjatov, Sjirokov, Danny; Hulk
Zenit have made a total of three changes to the side that earned a narrow win over Porto two weeks ago. Tomas Hubocan and Domenico Criscito come into the starting XI, while Axel Witsel returns from suspension.
PORTO: Helton; Danilo, Mangala, Sandro, Otamendi; Lucho Gonzalez, Josue, Fernando, Defour; Jackson Martinez, Varela
Just the two changes for Porto as Silvestre Varela and Steven Defour are selected by manager Paulo Fonseca. Meanwhile, Ander Herrera misses out through suspension after picking up a red card during the reverse fixture in Portugal.
ZENIT SUBS: Baburin, Neto, Anyukov, Zyryanov, Tymoshchuk, Kerzhakov, Arshavin
PORTO SUBS: Fabiano, Maicon, Reyes, Lica, Agu, Ghilas, Ricardo.
Of course, one of the main sub-plots tonight is that Zenit striker Hulk is coming up against his former club for the second time. The Brazilian spent a successful four-year spell with the Portuguese side before joining Zenit in a deal worth in excess of £33m. Such is the high regard that they hold Hulk in at Porto they built a statue of him in their museum.
One thing for certain is that Hulk is unlikely to celebrate if he scores against his former employers tonight. Unless it's an injury-time winner. He might go a bit bonkers if that happens, and who would blame him?
RECENT FORM:
ZENIT: WWWWLD
PORTO: LWWLWD
Domestically it's looking pretty good for both of these teams. Zenit are three points clear at the top of the Russian Premier League, while Porto sit three points clear in the Primeira Liga.
HEAD TO HEAD: Zenit and Porto have met a total of three times down the years, with the Russians boasting the better record. Zenit have won two matches, while the teams have played out a draw on one occasion.
Rather worrying for Porto is that they have only managed one goal in three encounters with Zenit. They will be looking to amend that disappointing statistic tonight. Around 15 minutes until kickoff.
If you're interested in how the weather's looking in Russia it's chilly. There's a bit of rain in the air as well.
The players are in the tunnel, ready to step out onto the pitch at the Stadion Petrovski. Lots of concentration on their faces as both teams look to make a giant leap towards the last 16. Kickoff is fast approaching.
Here come the players as the Champions League anthem is piped through the PA system. The pre-match rituals are completed and it will be Porto to get us underway. Here we go!
This has been a very good start indeed from Porto. They've dominated possession so far and have used the ball well in the final third. A couple of crosses have been pumped into the Zenit box, but the home defence have dealt with the danger both times.
Zenit are starting to get hold of the ball a bit more, through they aren't being afforded too much time on it as Porto press high up the pitch. The visitors are full of energy at the moment, forcing their opponents into errors.
CHANCE! Almost a nightmare for Zenit goalkeeper Lodygin as he spills Danilo's long-range effort, but he manages to recover and nonchalantly stops the ball crossing the line. That could have been embarrassing for the shotstopper.
MISS! Zenit have their first meaningful opportunity of the match as Hulk rolls the ball to Witsel on the edge of the box, only for the midfielder to smash his effort high and wide. That was woeful.
It's still Porto who are asking all of the questions right now. You'd be forgiven for thinking that they're the home side instead of the visitors. Zenit are being limited to the occasional counter-attack.
Porto win a free kick in a promising position, but Josue's delivery is poor and Zenit clear. One thing that is standing out about the home side this evening is that their passing has been below par. Whenever they get on the ball it's a bit scrappy, and they aren't showing the same kind of desire to win it back as Porto.
Around 200 #Porto fans have made trip for #UCL clash with #Zenit. Have been busy buying local headgear to keep warm pic.twitter.com/0NFPzADRvF — Richard van P (@UEFAcomRichVP) November 6, 2013
It's quite remarkable how dominant Porto are at the moment. The Portuguese side are practically camped out inside the Zenit half, trying to find a way through. However, the game remains goalless.
CHANCE! Varela gets a sight of goal on the edge of the box following good work from Danilo, but the striker can only blaze the ball high over the crossbar. Not a good strike.
GOAL! ZENIT 0-1 PORTO (LUCHO)
Well, you have to say that it's been coming! Porto lead thanks to Lucho. The ball was whipped into the penalty area by Danilo and Lucho was able to guide a superb header past Lodygin and into the far post.
Porto may have taken the lead but that hasn't silenced the Zenit fans. The Russian supporters are still causing quite the racket inside the stadium as their team looks for a way back into the match.
SUBSTITUTION: An early change for Zenit sees Danny replaced by Aleksandr Kerzhakov.
GOAL! ZENIT 1-1 PORTO (HULK)
Zenit aren't behind for long as former Porto striker Hulk pounces after a comedic defensive mix-up by the visitors. An innocuous pass into the penalty area was left by a couple of defenders and the goalkeeper, allowing Hulk to sneak in and roll the ball into the net. No celebration from the big Brazilian though.
CHANCE! Almost a second goal for Porto as Defour bursts into the box, but the Belgian's touch is a heavy one and Zenit see the ball out of play.
Porto threaten again through Lucho, who curls the ball well over the crossbar from 18 yards. He should have at least got his effort on target there. Either way, this is much more of an even game now. Porto were dominating but they only have themselves to blame for letting Zenit back into it.
Good defending from Otamendi there to deny Zenit a second goal. The hosts broke quickly through Kerzhakov, who tried to pick out Shirokov in the box. However, the Porto defender was there to poke the danger away.
Five minutes of normal time left in this first half and both sides look capable of getting on the scoresheet again. It's all a bit scrappy and end to end at the moment.
There have been a couple of tasty challenges from both sets of players tonight, but the referee has kept his cards in his pocket so far. Porto win a free kick that Danilo whips into the area, only for Lodygin to gather impressively.
One minute added time.
HALF TIME: ZENIT 1-1 PORTO
The half-time whistle goes and it's 1-1 between Zenit and Porto. Lucho Gonzalez gave the visitors the lead in the 22nd minute with a brilliant header before former Porto striker Hulk levelled things up soon after when he capitalised on some poor defending from the away side. All in all that wasn't too bad an opening 45 minutes.
If the match ends like this, Zenit will be the far happier team. They currently lead Porto by one point in the standings as both teams look to secure that second qualification spot behind Atletico Madrid.
Porto started the match very strongly indeed and deservedly took the lead. However, they will be furious with themselves for gifting Zenit such a soft equaliser. How crucial could that be come the end of the qualification campaign?
Speaking of Atletico Madrid, the Spaniards haven't actually qualified for the last 16 yet but they can seal their progress with a win against Austria Vienna tonight. If their recent form is anything to go by, you wouldn't bet against Diego Simeone's side getting the three points later.
Right, the players are back out and it will be Zenit to kick us off for this second half.
It's been an even start to the second period so far, with Zenit looking far more comfortable on the ball than what they did during the opening 45 minutes. No chances as of yet though.
Zenit get an opportunity now as Shatov fires past Helton's near post. That was always going off target, but it had the Porto goalkeeper worried.
PENALTY TO ZENIT!
The referee points to spot as Otamendi blocks a cross with his hand. No complaints from Porto.
PENALTY SAVED!
Hulk hangs his head in shame and so he should because that was a terrible penalty. The Brazilian striker's effort was a weak one, allowing Helton to make the save down to his right.
How important could that penalty incident be? Zenit have started the second half brightly and could have capitalised on their early dominance. However, Porto are now starting to find their rhythm.
YELLOW CARD: The first booking of the night goes the way of Porto's Fernando for a shove on Shatov.
An hour played and it's Porto who look the more likely to score right now. The visitors are getting plenty of joy down the flanks, while Zenit are struggling to get out of their own half.
YELLOW CARD: Porto's Sandro now goes into the book for bringing down Hulk. There could be an argument there that Sandro was the last man, but the referee saw that there was cover. Hulk takes the resulting free kick and smashes the ball high over the bar.
Porto are just picking holes in the Zenit defence at the moment. The Russian full-backs are having a torrid time as the visitors maraud forward at every available opportunity. Zenit are just about hanging in there, though they can't keep getting exposed like this for much longer.
SUBSTITUTION: Zenit make another change now as Arshavin is introduced in place of Shirokov. Can the local lad make a difference?
SAVE! Good stop from Lodygin as the Zenit goalkeeper gets down low to keep out Martinez's long-range strike. That one looked like it was creeping in the bottom corner.
Twenty minutes left of normal time at the Stadion Petrovski. Are we going to see a winning goal in that time. Porto are still playing like they want it more.
CHANCE! A good opening comes the way of Zenit as Shatov tees up Kerzhakov, but the substitute hits the ball over the crossbar from the edge of the box with his first-time effort.
SAVE! How important could that stop by from Helton? The ball is flicked through to Arshavin who sees his shot from close range kept out by the Porto goalkeeper. Arshavin had the whole goal to aim at there, only to shoot straight at the shotstopper.
SUBSTITUTION: A change for Porto now as Lica comes on for Josue.
The momentum has now swung Zenit's way. The Russians are suddenly full of life as they push for a winner. Witsel tries to work himself some space in the box before Danilo steams in with a full-blooded challenge.
Fernando has a pop at goal from the edge of the area, but he slips at the vital time and Lodygin makes a simple save.
SUBSTITUTION: The home side make their final swap of the night, with the experienced Zyryanov replacing Witsel. We're into the final 10 minutes.
Zenit win a free kick right on the edge of the area as Otamendi fouls Hulk, but Kerzhakov smashes the ball into the wall. That was a disappointing effort from the substitute. Meanwhile, Shatov goes into the book for chopping down Sandro.
CHANCE! Nearly a spectacular winner from Ansaldi as the full-back unleashes a ferocious half-volley from 25 yards. However, it goes narrowly wide with Helton well beaten.
PENALTY APPEAL! Zenit get away with one there as Mangala pulls down Hulk inside the area. The Russians appeal to the referee, but he waves away the protests. What a big let off for the visitors because that looked like a certain penalty.
YELLOW CARD: Zenit substitute Zyryanov goes into the book for a foul on Mangala. Not long to go now.
Three minutes added time.
FULL TIME: ZENIT 1-1 PORTO
The full-time whistle goes and Zenit St Petersburg have played out a 1-1 draw with Porto. Both teams have kept their hopes of reaching the last 16 alive after Hulk cancelled out Lucho Gonzalez's opener. The hosts could have won it in the second half, but Hulk saw his penalty saved by Helton.
Anyway, that's all from me but don't forget that you can keep up to date with the rest of tonight's Champions League action right here on Sports Mole. We have live text coverage from all seven games this evening, so have a look around and see what takes your fancy. Goodnight!