Roman Shirokov blev matchvinder med en scoring to minutter før slutfløjt efter en dramatisk afslutning, hvor gæsterne netop havde udlignet til 2-2.
Zenit-sejren var fuld fortjent efter 90 minutter, der begyndte med portugisisk dominans og endte med russisk powerplay.
I 13 kuldegrader lagde gæsterne stærkt ud mod værterne, der ikke har spillet en betydende kamp i 2012.
Efter 20 minutter kom Benfica foran med 1-0, da hjemmeholdets målmand blot halvklarede et frispark. Returbolden endte for fødderne af Maxi Pereira, der let kunne sende bolden i mål.
Føringsmålet satte med det samme gang i Zenit, og belønningen kom også ret hurtigt, da Roman Shirokov fem minutter senere snittede et indlæg fra Tomás Hubocan i mål til 1-1.
Benfica virkede tilfredse med det resultat, og gæsterne gik helt i stå og lod sig presse tilbage på banen. Zenit tilspillede sig flere store chancer mod de passive portugisere.
Selv om værterne måske ikke er i holdets bedste kampform, så fik de alligevel lov til at trylle ved 2-1-målet. Vladimir Bystrov fandt Sergei Semak, der med en forsvarsspiller foran sig, sendte bolden i mål med hælen.
Slutfasen endte i det helt store drama, da Zenits målmand først forærede en stor chance til Benficas Oscar Cardozo, der udlignede til 2-2.
Få øjeblikke senere var den gal i den anden ende, da en portugisisk forsvarsfejl betød, at Roman Shirokov kunne score sejrsmålet.
Der er returopgør i Portugal den 6. marts.
/ritzau/
Seneste artikler
Bent gør det ikke for priserne, men fik én alligevel
Guide til aktiviteter i efterårsferien
Omfattende strømafbrydelse ramte dele af Falster
Antallet af hjemløse stiger markant på Lolland
Løb efterårsferien ind med sørgebind
Mest læste artikler
Brand i sukkerfabrik
Tom bil på Farøbroen: Eftersøgning fortsætter mandag
Fundet livløs i rabatten: Cyklist fløjet til Rigshospitalet
Stjal 450.000 fra gymnastikfolk og tipsklub
Truede med at skyde bekendt: Fandt våben hos kvinde