Emil Forsberg fanns med från start igen för Leipzig, och var nära att ge sitt lag ledningen i den 36:e minuten då han sköt en frispark från distans i innerstolpen.
Det skulle dröja till den andra halvleken innan Leipzig gjorde 1-0. Timo Werner klackade elegant fram Bruma, som inte gjorde något misstag fri med målvakten.
Werner skulle sedan själv sätta 2-0 i den 77:e minuten.
Zenit fick dock med sig ett viktigt bortamål genom ett frisparksmål av Domenico Criscito i den 86:e minuten.
2-1 till Leipzig blev slutresultatet, vilket gör att Zenit måste vinna returmötet i St Petersburg nästa vecka för att gå vidare. Det räcker dock med 1-0 i och med att man fick in en boll på bortaplan.
I Leipzig gjorde Emil Forsberg i kväll 90 minuter för första gången sedan han kom tillbaka från sin skada tidigare i år.
Startelvor:
RB Leipzig: Gulasci - Laimer, Orban, Upmecano, Klostermann - Forsberg, Demme, Keita, Bruma - Augustin, Werner.
Zenit: Lunev, Ivanovic, Mammana, Criscito, Mevlja, Erokhin, Kranevitter, Kuzyaev, Rigoni, Kokorin, Zabolotny.