Zenits historie går tilbage til maj 1925, hvor holdet blev grundlagt i Leningrad af arbejdere fra Leningrad metal fabrik. De første år spillede Zenit primært i lokale turneringer. I 1930 deltog Zenit i Leningradmesterskaberne for første gang.
Stalinets
I 1936 skiftede klubben navn til Stalinets. Stalinets deltog i den Sovjetiske liga, og i 1939 nåede klubben den nationale pokalfinale, hvor man tabte til Spartak Moskva.
Zenit Leningrad
I 1940 skiftede holdet navn til Zenit Leningrad.
I 1944 Zenit vandt sin første titel nogensinde. Det var den Sovjetiske pokalturnering man vandt efter at have slået CSKA Moskva med 2-1.
De følgende årtier vandt Zenit ikke meget. De største præstationer var en fjerdeplads i den sovjetiske liga i 1958, og en femteplads i 1953 og 1976. Zenit nåede også semifinalen i den Sovjetiske pokalturnering i 1945, 1954, 1961, 1977.
I 1977 tog Yuri Morozov over som cheftræner, og Pavel Sadyrin som hans assistent. Morozovs aggressive spillestil kombineret med nogle unge og dynamiske lokale spillere viste sig at føre til bedre tider. I 1980 vandt Zenit sin første bronzemedalje nogensinde i den Sovjetiske liga.
I 1983 tog Pavel Sadyrin over som cheftræner, og Zenit sluttede sæsonen på fjerdepladsen, efter at have nået semifinalen i den Sovjetiske pokalturnering.
I 1984, stadig under ledelse af Sadyrin gik Zenit hele vejen til den Sovjetiske pokalfinale, men tabte til Dinamo Moskva efter forlænget spilletid. I 1984 blev Zenit dog for første gang nogensinde Sovjetiske ligamestre, hvor man sluttede to point foran Spartak Moskva, og fem point foran Dnipro Dnipropetrovsk.
Det følgende år vandt Zenit den Sovjetiske Super Cup efter to sejre i et dobbeltopgør mod Dinamo Moskva. Man vandt 2-1 på Kirov Stadion i Skt. Petersborg, og 1-0 på Dinamo Stadion i Moskva. Samme år nåede Zenit også semifinalen i den Sovjetiske pokalturnering.
Zenit sluttede 1986 sæsonen på en fjerdeplads i ligaen, og derefter gik det mindre godt for Zenit i de kommende ti år.
Lev Burchalkin er den spiller, der spillede flest Sovjetiske ligakampe (402) i Zenits historie. Han var også den spiller som scorede flest mål (78). Anatoly Korotkov er den spiller der scorede flest mål for Zenit i en enkelt sæson i den Sovjetiske liga (22 mål i 1950).
Zenit Skt. Petersborg
I 2001 vandt Zenit bronze i den Russiske liga under ledelse af Yuri Morozov, der igen havde sluttet sig til holdet. I maj 2002, nåede Zenit den russiske pokalfinale, men tabte til CSKA Moskva 2-0 på Luzhniki.
Da Morozov gik på pension var der pres på for at finde en afløser af samme kaliber. Valget blev noget uortodoks. Man valgte nemlig at ansætte den første udenlandske cheftræner i Zenits historie: Vlastimil Petržela fra Tjekkiet. Det viste sig at være en succes. Samme år (2003), vandt holdet sølv i den Russiske liga.
I 2004 kvalificerede Zenit sig for første gang til UEFA Cup gruppespillet. Zenit startede i 2. kvalifikationsrunde, hvor man besejrede Østrigske SV Pasching. Efter to uafgjorte kampe i Østrig og Rusland, gik Zenit videre på reglen om udebanemål. I Play-off runden mødte man Røde Stjerne fra Serbien, som blev slået sammenlagt 6-1. Zenit kom i gruppe med LOSC Lille, Sevilla, Alemannia Aachen og AEK Athen. Man gik lige akkurat glip af videre deltagelse i turneringen, da man sluttede på fjerdepladsen i gruppen, med fem point. CSKA Moskva gik hen og vandt UEFA Cuppen den sæson.
Zenit blev kun nummer fire det år i den Russiske liga, på trods af kun at slutte fem point efter ligavinderne fra Lokomotiv Moskva.
Før den russiske liga startede i 2005 var Zenit en af favoritterne til titlen. I den Russiske pokalturnering nåede Zenit semifinalerne, hvor man tabte til CSKA Moskva. I løbet af sæsonen spillede Zenit 19 kampe i streg uden nederlag, men sluttede kun på en skuffende sjetteplads, uden for europæisk deltagelse. For første gang nogensinde i klubbens historie lykkedes det Zenit at komme videre fra et europæisk gruppespil. I UEFA Cuppen 2005/06 gik man videre som 2’er i en gruppe med Sevilla, Bolton, Beşiktaş og Vitória Guimarães.
I 16-dels finalen slog man Rosenborg ud med samlet 4-1, og i 8-dels finalen slog man Marseille ud sammenlagt 2-1. I kvartfinalen blev man dog ekspederet ud af de senere vindere fra Sevilla med sammenlagt 5-2. Men det var en flot europæisk sæson, der viste at Zenit havde noget at byde på internationalt.
Før starten af 2006 sæsonen i Rusland, blev Zenit opkøbt af den russiske gas-gigant Gazprom. Den nye administration lovede at styrke holdet og trodse alt modgang for at glæde fansene med nationale succeser og især internationale succeser. Det var også her Dick Advocaat blev ansat som cheftræner. Zenit sluttede sæsonen på fjerdepladsen, som gav adgang til UEFA Cup kvalifikation for sæsonen 2007/08. En turnering der skulle vise sig at være gylden for Zenit.
I 2007 Zenit vandt den Russiske Premier League for første gang nogensinde, 23 år efter deres Sovjetiske mesterskab i 1984. Mesterskabet betød at de i 2008/09 for første gang i klubbens historie skulle deltage i et Champions League gruppespil. I marts 2008 vandt Zenit også den Russiske supercup 2-1 over Lokomotiv Moskva på Luzhniki.
UEFA Cup og UEFA Supercup vindere
Den største bedrift i klubbens historie blev foretaget i UEFA Cuppen 2007/08, da Zenit formåede at vinde turneringen.
Zenit startede turneringen i 2. kvalifikationsrunde, hvor de skulle op imod Zlaté Moravce fra Solvakiet. De blev ekspederet ud med 5-0 samlet, og i Play-off runden blev Standard Liege sendt ud med 4-1 sammenlagt.
Zenit havnede i en gruppe med Everton, Nürnberg AZ Alkmaar og Larissa. Zenit sneg sig videre på gruppens tredjeplads med fem point, kun et point foran AZ Alkmaar på den fjerdeplads som ikke gav adgang til knockout kampene.
I 16-dels finalen slog Zenit Villarreal ud på reglen om udebanemål. Efter en 1-0 sejr på Petrovsky Stadion, tabte man 2-1 på El Madrigal. Danske Jon Dahl Tomasson scorede bla. for Villarreal i deres 2-1 sejr.
I 8-dels finalen skulle Zenit møde Marseille, som man to år forinden også havde mødt, og slået ud i 8-dels finalen af UEFA Cuppen. Den første kamp blev spillet på Stade Vélodrome i Marseille, og efter 55 minutter var Zenit bagud 3-0. Men i det 82. minut tog Zenit legenden Andrey Arshavin sagen i egen hånd, og med et fremragende solomål sikrede han en 1-3 reducering som skulle vise sig at være vital for Zenits chancer i returkampen ugen efter på Petrovsky.
På Petrovsky Stadion vandt Zenit 2-0 på to mål af turneringens topscorer Pavel Pogrebnyak. Dermed gik Zenit videre på reglen om udebanemål.
I kvartfinalen skulle Zenit møde Bayer Leverkusen. Første opgør skulle spilles i Leverkusen, og her udraderede Zenit tyskerne med 1-4. Hjemme på Petrovsky tabte Zenit med 0-1, på et mål scoret af russiske Dmitri Bulykin. Men det betød ikke noget i det samlede regnskab, Zenit var klar til en semifinale for første gang nogensinde. Et af verdens største hold, Bayern München ventede, og første kamp på Allianz Arena i München sluttede 1-1. Bayern fik et straffespark efter 18 minutter som Franck Ribery skulle tage sig af. Vyacheslav Malafeev reddede, men Ribery scorede selv på returbolden. Midt i 2. halvleg fik Zenit udlignet. Et indlæg fra venstre headede Brasilianske Lúcio i eget mål, og Zenit fik 1-1 med til returen i Rusland.
På en af de største dage i Petrovsky Stadions historie, vandt Zenit 4-0 over Bayern München i returkampen. Målene blev scoret af Pavel Pogrebnyak x2, Konstantin Zyryanov og Viktor Fayzulin.
I Finalen på City of Manchester Stadium skulle Zenit op imod Glasgow Rangers fra Skotland. I en kamp som Zenit dominerede fra start til slut scorede Igor Denisov i det 72. minut det forløsende mål som fik jublen til at bryde løs, og i det 94. minut cementerede Konstantin Zyryanov sejren med 2-0 målet.
Profiler som Andrey Arshavin, Anatoliy Tymoshchuk, Pavel Pogrebnyak og Igor Denisov var nogle af de bærende kræfter gennem turneringen. Pogrebnyak blev turneringens topscorer med 10 mål, selvom han ikke engang tog del i finalen grundet karantæne.
Den 29 August 2008 skulle Zenit møde Manchester United i UEFA Super Cuppen (En årlig kamp mellem UEFA Cup og Champions League vinderne). Kampen blev spillet på Stade Louis II i Monaco, og blev dømt af danske Claus Bo Larsen.
I løbet af første halvleg begyndte Zenit af presse mere og mere på, og på tærsklen til pause fik Zenit et hjørnespark i venstre side. Alejandro Domínguez svingede bolden ind over. Igor Denisov flækkede den videre fra foran nærmeste stolpe ind mod mål, og derinde stod Pavel Pogrebnyak helt fri, hvor han nemt kunne følge bolden det sidste stykke over stregen med hovedet.
Andrei Arshavin, kom ind som erstatning for Alejandro Domínguez i pausen, men det var Danny der udbyggede føringen efter små 60 minutter. Han modtog bolden midt på Uniteds banehalvdel, englænderne bakkede bagud, og han brød ind i feltet hvor han sendte Edwin van der Sar den forkerte vej, og gjorde det til 2-0.
Manchester United trykkede på for at komme tilbage i opgøret, og med 17 minutter igen scorede Nemanja Vidic efter klumpspil rundt om Zenits felt. Scoringen hjalp ikke, og Zenit vandt deres andet europæiske trofæ nogensinde.
Spalletti æra
Luciano Spalletti underskrev en kontrakt med Zenit i december 2009, med hans italienske stab som inkluderede Daniele Baldini, Marco Domenichini og Alberto Bartali. Bestyrelsen forventede at han skulle vinde den Russiske liga og pokalturnering. Derudover skulle han gå videre fra Champions League gruppespillet med Zenit
Zenit vandt den russiske Cup den 16. maj 2010 efter at have slået Sibir Novosibirsk i finalen (man slog Volga Tver ud i kvartfinalerne og Amkar Perm i semifinalerne).
Efter 16 kampe i den Russiske Premier League, med 12 sejre og 4 uafgjorte, havde Zenit 40 point. En ny rekord for den fase af sæsonen. I sommer transfervinduet 2010 gjorde Spalletti sine første indkøb som Zenit træner. Han hentede Aleksandr Bukharov og midtbanespiller Sergei Semak fra Rubin Kazan; forsvarere Aleksandar Luković fra Udinese og Bruno Alves fra Porto.
Den 25. august 2010 tabte Zenit sin første kamp under Spalletti til den franske traditionsklub AJ Auxerre i Champions League Play-offsne, og gik dermed ikke videre til Champions League gruppespillet, i stedet deltog man i Europa League (tidligere UEFA Cup) hvor man gjorde rent bord med 6 ud af 6 sejre i sin gruppe med Anderlecht, AEK Athen og Hajduk Split. Den 3. oktober, slog Zenit Spartak Nalchik som førte til en ny for flest kampe som ubesejret i streg (21). Den 27. oktober, led Zenit sit første nederlag i sæsonen til rivalerne fra Spartak Moskva, man var blot syv kampe fra at slutte sæsonen ubesejret. Den 14. november, slog man Rostov hjemme, med to kampe tilbage af sæsonen havde man vundet den Russiske Premier League for anden gang. Zenit gik videre fra 16-dels finalen af 2010/11 sæsonen af Europa League, hvor man slog Schweiziske Young Boys ud. Den 6. marts 2011 vandt Zenit mod CSKA Moskva i den Russiske supercup, det tredje Russiske trofæ under Spallettis ledelse. Den 17. marts, blev Zenit dog slået ud af Europa League, hvor man tabte til hollandske Twente 2-3 sammenlagt i 8-dels finalerne.
I 2011-12 sæsonen af Champions League, begyndte Zenit gruppespillet i Gruppe G sammen med Porto, Shakhtar Donetsk og APOEL. Den 6. december 2011 sluttede Zenit på gruppens andenplads, og for første gang i klubbens historie kvalificerede man sig til forårets knockout fase. I 8-delsfinalen, blev Zenit trukket op imod portugisiske Benfica. Zenit vandt den første kamp 3-2 hjemme takket være to mål fra Roman Shirokov og ét enkelt fra Sergei Semak. I returkampen i Lissabon, tabte Zenit 2-0 og blev dermed slået ud.
I april 2012, vandt Zenit deres andet Russiske Premier League trofæ i streg, efter at have slået Dinamo Moskva.
Den. 3 september 2012 brugte Zenit i omegnen af 600 millioner kroner på at hente Hulk fra Porto og Axel Witsel fra Benfica. Målet var klart, man skulle konkurrere om trofæet med de store ører, Champions League trofæet. Dog skuffede Zenit i Champions League i sæsonen 2012/13, da man sluttede på en tredjeplads i en gruppe med Milan, Malaga og Anderlecht. Man gik dog videre til knockout kampene i Europa League, hvor man i 16-dels finalen mødte Liverpool, som man slog ud på reglen om udebanemål efter en 2-0 sejr på Petrovsky Stadion, og et 3-1 nederlag på Anfield. I 8-dels finalen blev Zenit slået ud af Basel. Efter et 2-0 nederlag i Schweiz, hvor Zenit inkasserede to sene mål, var en 1-0 sejr på hjemmebane ikke nok. I den Russiske liga sluttede man på andenpladsen, to point efter CSKA Moskva.
I 2013/14 sæsonen skulle Zenit spille kvalifikationskampe for at komme i Champions League gruppespillet. I 3. kvalifikationsrunde skulle man op i mod Danske FC Nordsjælland, som man slog samlet 6-0 efter en 1-0 sejr i Farum, og en 5-0 sejr i Skt. Petersborg. I Play-off runden slog man Portugisiske Paços de Ferreira ud med samlet 8-3 efter en 4-1 sejr i Portugal og en 4-2 sejr i Rusland. Zenit kom i Gruppe G sammen med Atlético Madrid, Porto og Austria Wien. Zenit gik helt sensationelt videre til knockout kampene med kun seks point. Det næstlaveste antal point som har givet videre deltagelse i Champions Leagues historie. I 8-dels finalen skulle Zenit op imod Dortmund. Efter et skuffende 2-4 hjemmenederlag, og dårlige resultater i ligaen blev Luciano Spalletti fyret den 11. marts 2014.
Villas-Boas æra
En uge efter Spallettis fyring, og med Sergei Semak som midlertidig cheftræner, ansatte Zenit Andre Villas-Boas på en toårig aftale. I mellemtiden nåede Sergei Semak at vinde 2-1 ude over Dortmund i 8-dels finale returkampen af Champions League, men Zenit tabte 5-4 samlet. Villas-Boas nåede ikke at vende skuden helt den sæson, og Zenit sluttede et point efter CSKA Moskva.
I Villas-Boas første hele sæson (2014/15) som cheftræner vandt Zenit det russiske mesterskab for første gang i tre år, og sikrede også Zenit sin første stjerne over logoet (5 russiske/sovjetiske mesterskaber skal der til for at få en stjerne). Man sluttede på 67 point, hele syv point foran CSKA Moskva og FC Krasnodar.
I Champions League 2014/15 skulle Zenit endnu engang spille kvalifikationskampe for at komme i gruppespillet. I 3. kvalifikationsrunde slog man AEL Limassol 3-1 samlet. Man tabte 1-0 på Cypern, men vandt 3-0 i Rusland. I Play-off runden skulle man møde Standard Liége, som man slog ud samlet 4-0 efter 1-0 og 3-0 sejre. Man blev parret med Bayer Leverkusen, Monaco og Benfica i Gruppe C, og sluttede skuffende nummer 3. Det første til at man skulle spille Europa League efter nytår, og her skulle Zenit møde PSV i 16-dels finalen. Det blev til en samlet 4-0 sejr, efter en 1-0 og 3-0 sejr. I 8-dels finalen skulle Zenit møde Torino, og her vandt man det første opgør 2-0 på Petrovsky Stadion, men tabte 1-0 på et mål i sidste minut i Torino. Man gik videre samlet 2-1. I kvartfinalen skulle Zenit op imod de forsvarende Europa League vindere fra Sevilla. I det første opgør på Ramón Sánchez Pizjuán Stadion i Sevilla manglede Zenit Igor Smolnikov, Danny, Hulk og Domenico Criscito. Alligevel blev det kun til et smalt 1-2 nederlag. Returkampen på Petrovsky Stadion blev 2-2, og Zenit røg ud i kvartfinalen.
Senere i kalenderåret 2015, sagde Villas-Boas, at han ville forlade klubben efter 2015/16 sæsonen. I Champions League 2015/16, var Zenit automatisk kvalificeret til gruppespillet.
De blev trukket ud i Gruppe H sammen Valencia, Lyon og Gent. De sluttede gruppespillet med deres bedste pointhøst nogensinde. 15 point og 5 sejre ud af 6 mulige og klare gruppevindere. I 8-dels finalen blev de dog slået ud af Benfica. Efter et 0-1 nederlag på Estadio Da Luz i Lissabon, tabte Zenit også 1-2 på hjemmebane, og måtte skuffende forlade turneringen efter 8-dels finalen.
I ligaen kunne Zenit ikke følge op på deres flotte mesterskabssæson i fjor, og sluttede på tredjepladsen bag mestrene CSKA Moskva og sensationsholdet FC Rostov. En tredjeplads var ikke Champions League givende, og Zenit skulle spille i Europa League i sæsonen 2016/17. Villas-Boas takkede af efter sidste spillerunde, hvor Zenit slog Dinamo Moskva med 3-0 på udebane, et resultat der samtidig sendte Dinamo Moskva ned i den Russiske første division for første gang i deres historie.
Lucescu æra
I maj 2016 skrev Zenit kontrakt med den rumænske cheftræner Mircea Lucescu. Lucescu kom direkte fra Shakhtar Donetsk, hvor han havde været cheftræner i otte år. D. 30 juni blev Zenit stjernen Hulk solgt til den kinesiske klub Shanghai SIPG. Transferbeløbet udgjorde 55,8 millioner euro og yderligere bonusser.