Zenit St Petersburg left it late as they scraped a 1-0 UEFA Champions League victory at 10-man Porto on Tuesday.
Aleksandr Kerzhakov's 86th-minute header was enough for the visitors, who laboured to take advantage of Porto playing much of the game a man down.
The hosts found themselves reduced to 10 after six minutes of the Group G clash as Hector Herrera saw yellow twice in the space of a minute.
However, Zenit failed to make the extra man count for much of the game and, aside from a pair of Hulk chances in the second half, rarely threatened home goalkeeper Helton.
Porto more than held their own after the early setback, and twice hit the woodwork in a tie they arguably deserved to win. But the deadlock was finally broken four minutes from time as Kerzhakov sealed the three points for Luciano Spalletti's men.
The victory lifts Zenit to second in the pool, leapfrogging Porto in the process.
Paulo Fonseca made wholesale changes from the Porto team that triumphed over Segunda Liga basement club Trofense in the Taca de Portugal third round on Saturday.
Zenit, meanwhile, brought Cristian Ansaldi, Viktor Faizulin and Oleg Shatov in for Domenico Criscito, Konstantin Zyryanov and the suspended Axel Witsel after their 2-0 Russian top-flight win against CSKA Moscow last Friday.
The game got off to a nightmare start for the hosts at a far-from-full Estadio do Dragao, with Herrera sent off after receiving two yellow cards within six minutes.
His first for a reckless challenge on former Porto striker Hulk was immediately followed by a foolish second for encroachment on the resulting free-kick, meaning the Mexican marked his full Champions League debut with the fastest dismissal for a double booking in the competition’s history.
Despite being a man down, it was Porto who had the better of the chances early on, with Lucho Gonzalez rattling the angle between post and crossbar from 20 yards after 20 minutes and a stretching Lica unable to take advantage of the rebound.
Zenit struggled to settle and were reduced to speculative efforts from distance, with their best chance of the half being a curling Roman Shirokov effort from the edge of the area that drifted just beyond the far post.
With the match crying out for an injection of energy after the break, Porto substitute Silvestre Varela provided something of a spark as he cut in from the right, skipping past two defenders in the process, before skewing his strike wide of the left post.
Moments later at the other end, Hulk robbed Nicolas Otamendi of possession just outside the penalty area, but was denied by the outstretched foot of Helton after finding himself through one-on-one with the goalkeeper.
And Helton had to be alert again in the 65th minute, as Hulk powered a thunderbolt of a free-kick in his direction from 25 yards. It was too hot to handle, but the Brazilian punched clear to deny his former team-mate.
Varela, who looked lively after replacing Lica, went close for the hosts once again with just over 10 minutes left to play. He turned on the edge of the area and fired an effort against the Zenit crossbar, with goalkeeper Yuri Lodygin beaten.
However, it was Zenit who finally opened the scoring as Kerzhakov rose highest to head home from an excellent cross from Hulk on the right wing.
|16||H. Herrera||5' 6'|
|Coach: Paulo Fonseca|
for Licá 53'
for Josue 75'
for L. González 87'
|CAF hits out at Platini|
|Mourinho calm over striker shortage|
|Kompany fumes at presence of CSKA fans|
|CONCACAF Champions League Review: Timbers eliminated|
|Jerome complains of racial abuse|
|Lanus 1 Cerro Porteno 1: Paraguayans reach quarters|
|A-League Preview: Another blow for Melbourne City ahead of derby|
|Luiz Adriano alleges racism|
|Yermakovich laments lack of quality, errors|
|Lopetegui pleased with important win|
|Luiz Adriano overjoyed with record-equalling haul|
|Blanc hails PSG´s fighting spirit|
|Melbourne City confirm Villa departure|
|Mixed feelings for Donis|
|Chelsea are ´serious contenders´ - Simundza|
|Valverde remaining positive|
|Silva slams penalty decision after Sporting loss|
|De Boer unhappy with early Ajax caution|
|League Two Review: Wycombe lose at Exeter, Burton win thriller|
|Championship Review: Derby go top, Birmingham struggles continue|
|Guardiola plays down dominant Bayern win|
|Schalke grateful for controversial penalty win|
|Rakitic takes heart from Barca performance|
|League One Review: Crewe run continues as Preston win again|
|Garcia accepts blame for Bayern mauling|
|UEFA Europa League Preview: Sevilla, Napoli hit the road|
|Drogba delight as Maribor pay the penalty|
|Schalke 4 Sporting Lisbon 3: Choupo-Moting heroics earn Di Matteo incredible win|
|BATE 0 Shakhtar Donetsk 7: Luiz Adriano the five-goal hero|
|APOEL 0 Paris Saint-Germain 1: Late Cavani strike seals victory|
|Barcelona 3 Ajax 1: Messi and Neymar help sink Dutch champions|
|Chelsea 6 Maribor 0: Drogba on target in comfortable success|
|Porto 2 Athletic Bilbao 1: Quaresma leaves it late to ensure maximum points|
|Roma 1 Bayern Munich 7: Guardiola´s men run riot in Rome|
|Slutsky delighted with CSKA spirit|
|Sloppy City frustrate Pellegrini|
|Lille v Everton: Martinez´s men look to continue recovery|
|Tottenham v Asteras Tripolis: Spurs begin big week with group leaders|
|Bale out of Clasico, confirms Ancelotti|
|Galatasaray the perfect test for Dortmund, says Klopp|
|CSKA Moscow 2 Manchester City 2: Visitors remain winless after spurning two-goal lead|
|Rodgers plays down Bale absence|
|Allegri urges Juventus to keep calm|
|Subotic wants confidence-boosting victory|
|Fernandes apologises for Taarabt-Redknapp spat|
|Lopes hopeful of return after mini-stroke|
|Gabi to miss out for Atletico|
|Inter v Saint-Etienne: Mazzarri´s men eye next step to last 32|
|Hasi warns of Arsenal threat|
|Verona hit with fine and partial stadium closure|
|Sunderland players offer fans refund after Southampton mauling|
|Schmidt wants Leverkusen reaction|
|Redknapp: Taarabt the worst professional I have ever come across|
|´I haven´t been up to my full potential´, admits Shaw|
|Flamini: Injuries no excuse for Arsenal form|
|Busquets to miss Ajax clash|
|Bale out of Anfield clash|
|Levante sack Mendilibar|
|Platini talks down Ronaldo´s Ballon d´Or chances|
|Messi and Ronaldo out of this world in UEFA Champions League space race|
|Bring on Bilbao - Lopetegui|
|J.League Preview: Petrovic positive despite Urawa form|
|Argentine Primera Division Review: Calleri inspires Boca|
|Guardiola: Garcia´s Roma reign ´wonderful´|
|Chilean Primera Division Review: Colo Colo claim key win|
|Mata had ´no relationship´ with Mourinho|
|Paraguayan Division Profesional Review: Libertad gain ground, Cerro Porteno held|
|Lovren demands better display|
|´Arrogant´ Van Gaal insists United can catch Chelsea|
|Sociedad loss a ´hammer blow´ - Arrasate|
|Genoa deserved a penalty - Gasperini|
|Passion kept me at Roma - De Rossi|
|Irvine ´bitterly disappointed´, questions Fellaini´s goal|
|Taarabt hits back at Redknapp claims|
|Genoa 1 Empoli 1: Tonelli hands visitors a point|
|Van Gaal blames United errors for draw|
|Real Sociedad 1 Getafe 2: Yoda brace stuns San Sebastian|
|West Brom 2 Manchester United 2: Blind rescues point for Van Gaal´s men|
|Russian Premier League Review: CSKA, Rubin claim easy victories|
|De Boer calls for confident Ajax|
|Robben hails Roma ahead of Champions League showdown|
|Turkish Super Lig Review: Besiktas win again, Sneijder settles derby|
|Monaco v Benfica: Jardim to face off with former rivals|
|Cordoba turn to Djukic|
|Anderlecht v Arsenal: Wenger on the defensive after domestic struggles|
|Ferrer fired by Cordoba|
|Olympiacos v Juventus: Allegri´s men face stern Greek test|
|PSG will not hide behind injuries, says Blanc|
|Podolski rubbishes Spurs rumours|
|Galatasaray among teams fined by UEFA|
|Stoke loan out Butland and Wilkinson|
|Atletico Madrid v Malmo: Turan warns Spanish champions|
|Di Matteo: Sporting clashes crucial|
|Donbass Arena heavily damaged by shelling|
|Toure getting back to his best - Pellegrini|
|Liverpool v Real Madrid: Rodgers marvels at Real quality|
|Starke injury adds to Bayern´s goalkeeper troubles|
|Bayer Leverkusen v Zenit: Bellarabi wants consistent focus|
|Birmingham part company with Clark|
|Roma not afraid of Bayern, insists Garcia|
|Ludogorets v Basel: Sousa after more of the same|
|Galatasaray v Borussia Dortmund: Reus calls for unity|
|Luis Enrique coy on Messi sub snub|
|Indian Super League Preview: Chennaiyin with chance to go top|
|Costa to miss Maribor clash|
|League Two Preview: Wilcox promises York improvement, Tranmere seek to end losing streak|
|League One Preview: Grayson excited by Preston form|
|Championship Preview: Birmingham begin life without Clark, Fulham out to continue revival|
|Ronaldo will retire at Real insists Ancelotti|
|Musa: City are weak at the back|
|El Shaarawy: I could have played better|
|Allardyce targets City scalp|
|Bale suffers hip injury|
|Atleti cannot rely on set-pieces, says Suarez|
|Martinez: Baines at another level|
|Juan: Inter must maintain hunger|
|Van Gaal: Three month comment was stupid|
|Bielsa proud to equal Marseille record|
|Redknapp: No one could do better than me|
|Manolas: I rejected Juve and Arsenal for Roma|
|Winning without Costa delights Mourinho|
|Mannone vows to repay fans|
|Balotelli ´doing his best´, insists Rodgers|
|Marseille feeling streak fatigue|
|Fournier hails substitutes´ influence|
|Copa Sudamericana Preview: River wary of Libertad|
|Colombian Primera A Review: Santa Fe stay top, Medellin lose|
|Valencia must bounce back - Nuno|
|Ecuadorian Primera A Review: Blanco inspires Barcelona|
|Liga del Futbol Profesional Boliviano Review: Wilstermann go top, Blooming slip up|
|MLS Review: Sounders deny Galaxy, Donovan|
|Venezuelan Primera Division Review: Caracas continue rise, Tachira stumble|
|Uruguayan Primera Division Review: Alonso´s brace inspires rampaging Nacional|
|Inter behind Mazzarri - Ausilio|
|Peruvian Primera Division Review: Alianza Lima leapfrog Union Comercio|
|Benitez happy with second half|
|Costa Rican Primera Division Review: Alajuelense jump clear, Saprissa win fifth straight|
|Liga MX Review: Leon continue resurgence|
|Brazilian Serie A Review: Cruzeiro, Sao Paulo bounce back|
|Hart: Aguero ´useless´ in training|