Aleksandr Kerzhakov scored five minutes from fulltime to give Zenit St Petersburg a 1-0 win over 10-man FC Porto on Tuesday and its first victory in Champions League Group G.
Kerzhakov met a cross from Hulk to net the winner which lifted the Russian club into second place in the group with four points. Porto slipped to third, one point behind Zenit.
Atletico Madrid kept its grip on the group lead with a 3-0 result at Austria Vienna maintaining its winning run.
Zenit had lost four of its previous five away games and struggled to dominate a gutsy Porto team despite its numerical advantage, and the late goal was a cruel blow for the Portuguese team which twice hit the woodwork.
Porto held level for 80 minutes after Hector Herrera was shown his second yellow card only six minutes into his tournament debut.
The Mexican player brought down Hulk on the edge of the Porto area in the fourth minute and two minutes later ran out of the defensive wall too early to charge down Hulk's free kick, earning a second booking.
Hulk was a constant threat at the Stadium of the Dragon, where he scored a club record 44 goals during a four-year spell before moving to Russia last year.
But Porto came closest to scoring in the first half as Lucho Gonzalez hit the Zenit woodwork with a thundering right-foot shot in the 20th.
Helton produced a spectacular save to deny Hulk in the 57th after a blunder by defender Nicolas Otamendi gifted Zenit the ball.
Porto kept up the pressure, though Hulk's blistering left-foot shots in the 65th and 70th looked set the break the deadlock before Helton once again proved equal to the tests.
Silvestre Varela's curling shot bounced on the Zenit crossbar in the 78th.