CSKA Moscow beat Lokomotiv Moscow 1-0 to retain their title on a pulsating final day in the Russian Premier League.
The city rivals came into Thursday's fixtures each in with a chance of securing the crown - while Zenit travelled to Kuban Krasnodar also hoping to win the league.
CSKA entered the round top of the league on 61 points, with Zenit on 60 in second and third-placed Lokomotiv a further point back.
Zenit were comfortable 4-1 winners, but Zoran Tosic grabbed CSKA's crucial goal as they secured their 12th national title.
Andre-Villas Boas' side came into the game under a cloud after Sunday's encounter with Dinamo Moscow had to be abandoned due to a violent pitch invasion.
But they seized the advantage at Kuban Stadium and were temporarily top when Danny slipped Axel Witsel clear on goal for a 15th-minute opener.
Goalkeeper Vyacheslav Malafeev was forced off with injury soon after and replaced by Yuri Lodygin to keep Zenit nerves jangling.
Meanwhile in Moscow, CSKA defender Vasili Berezutski headed wide from a free-kick as the hosts at Arena Khimki went in search of a precious goal.
Zenit were two up at the break and cruising, Salomon Rondon heading home to double the advantage from Domenico Criscito's cross and a nervy CSKA display saw them go in at half-time goalless - leaving the St Petersburg club 45 minutes away from glory.
However, Leonid Slutsky's team talk revived his side and they finally went ahead in the first minute of the second period.
Tosic pounced on a loose pass in the Lokomotiv midfield before surging forward and drilling a low effort in from 20 yards.
News eventually reached Kuban as Zenit fans watched on deflated, but Oleg Shatov's volley to make it 3-1 cheered them somewhat.
Lorenzo Melgarejo grabbed a consolation for Kuban while, almost exactly at the same time in Moscow, Alan Dzagoev went agonisingly close to sealing CSKA's triumph.
It almost proved costly as Lokomotiv substitute Dame N'Doye hit the post but Slutsky's men held on - Hulk's fourth for Zenit coming after the final whistle in Moscow had blown and counting for nothing.
Elsewhere on the final day, Krasnodar secured UEFA Europa League football for the first time thanks to a 2-2 draw at Amkar Perm.
They will be joined by Lokomotiv and Dinamo Moscow, who lost 3-2 to city rivals Spartak - denied their own top-five spot due to an inferior head-to-head record with Krasnodar.
Matters at the bottom of the table had been decided ahead of the final day. Relegated pair Volga and Anzhi ended their miserable campaigns with home defeats to Ural and Krylya Sovetov respectively.
Krylya's win will boost their confidence heading into the relegation play-offs, and Tom Tomsk also grabbed a win ahead of their own participation - beating Rostov 3-2.
Elsewhere, Rubin Kazan and Terek Grozny rounded off their campaigns with a 1-1 draw.
|Coach: L. Slutsky|
for A. Dzagoev 80'
for S. Doumbia 90+2'
|Allen thrilled with Welsh ´hunger´|
|Kovacic to miss Euro 2016 qualifier|
|Costa Rica 0 Paraguay 0: Dour draw marks Diaz debut|
|Reid ruled out of South Korea friendly|
|Deschamps talks up France despite defeat|
|Rooney chasing England goalscoring record|
|Brazil ´superior´ admit French veterans|
|Reeves sidelined for Finland clash|
|Confidence critical for rampaging Brazil - Dunga|
|France 1 Brazil 3: Dunga´s men maintain winning run|
|Chile 0 Iran 2: Nekounam and Amiri down Copa America hosts|
|Premier League to share over £1bn from record TV deal|
|Morocco v Uruguay: Last chance to impress Tabarez for Copa champions|
|Iran 2-0 Chile: Nekounam and Amiri down Copa America hosts|
|Ivanovic braced for Ronaldo test|
|Bahrain 0 Colombia 6: Falcao stars in comfortable victory|
|Jones to Bournemouth leads loan deadline day moves in Championship|
|Bahrain 0-6 Colombia: Falcao stars in resounding victory|
|Malmo fined for poor pitch by UEFA|
|League Two Preview: Hartlepool aim to continue great escape, leaders Burton host Stevenage|
|France 1-3 Brazil: Neymar on target as Selecao triumph in Paris|
|Bulgaria v Italy: Verratti vows to be Azzurri´s midfield general|
|Kane primed for full England debut|
|Kone receives positive news over knee injury|
|Terry pens new Chelsea deal|
|PSG tie down Marquinhos|
|De Gea stamp was accidental - Skrtel|
|Villa hopeful over Xavi reunion|
|El Salvador v Argentina: Messi set for Roca reunion|
|Ghana v Senegal: Grant´s side looking to rebuild after AFCON disappointment|
|Ferdinand to serve extended touchline ban|
|League One Preview: Duo aiming to inspire Notts County revival, Alexander back at Preston|
|Hodgson keeps an eye on Sterling and Milner|
|Filipe Luis cools talk of Atleti return|
|West Brom to wear retro kit for Leicester clash|
|Netherlands v Turkey: Sneijder unconcerned by key absentees|
|Del Bosque wary of Ukraine threat|
|Israel v Wales: Pivotal fixture for both sides in chase for Euro dream|
|Bosnich backs Villa to beat drop|
|Walcott denies Wenger ´bust-up´|
|Hart: Aguero more difficult to face than Messi|
|Williams: I can´t see myself playing for anyone else|
|Coutinho eager to add more goals to his game|
|Khedira confirms Real exit|
|Messi attends NBA match with Argentina squad|
|United will qualify for Champions League - Bosnich|
|Mexico v Ecuador: Hernandez desperate to play|
|Podolski plays down Germany cameo|
|Bendtner: I could have scored four|
|Leverock family adds to World Cup exploits for Bermuda|
|Pele: ´Impossible´ for Neymar to replace me|
|MLS Preview: New England hoping to end drought|
|A-League Preview: Phoenix without stars for Sydney showdown|
|Klinsmann laments late collapse|
|Premier League clubs post first pre-tax profit for 15 years|
|Vokes relishing chance to link up with Bale|
|Dunga encourages Brazil to entertain|
|Dyke: FA to discuss Hodgson extension|
|Janko eyes history with Austria|
|Wilson urges Begovic to stay put|
|Strachan: Scotland have work to do|
|Sky´s the limit for Australia - Postecoglou|
|Low unhappy with below-par Germany|
|Scotland 1 Northern Ireland 0: Berra´s header settles dour contest|
|Germany 2 Australia 2: Substitute Podolski salvages draw|
|Denmark 3 United States 2: Bendtner hat-trick rescues Danes|
|Scotland 1-0 Northern Ireland: Berra the unlikely hero for hosts|
|Gobbi: Players will ´pay the price´ to keep Parma afloat|
|Rose withdraws from England squad|
|Germany 2-2 Australia: Podolski rescues draw for World champions|
|Denmark 3-2 USA: Bendtner hat-trick wins it for the Danes|
|Nigeria 0 Uganda 1: Late winner sours Enyeama landmark|
|Swaziland 1 South Africa 3: Bafana Bafana back to winning ways|
|Camp Nou to host Copa del Rey final|
|Labadie charged with violent conduct after biting claims|
|Bender keen to rekindle Bayern rivalry|
|Swansea eager to tie down Taylor|
|Varane learning from Real troubles|
|Forster ruled out for rest of season|
|Inter full-back Dodo has successful surgery|
|Verratti focused on future at PSG|
|Minnesota awarded MLS expansion team|
|Ibrahimovic slams ´b******t´ PSG exit rumours|
|Gibson withdraws from Ireland squad|
|Ozil convinced he can win Ballon d’Or|
|Costa: I take a beating from Premier League defenders|
|Canada v Guatemala: Floro seeks to develop winning mentality|
|Vermaelen returns to Barcelona training|
|Euro 2016 Qualifying Preview: Spain face big Ukraine test, Germany visit Georgia|
|Spain v Ukraine: Morata set for first competitive start|
|England v Lithuania: Hart urges Kane not to leave U21s behind|
|Monchengladbach snap up Hannover skipper Stindl|
|Khedira gives strong hint of Real exit|
|Skrtel banned for three matches|
|Brisbane Roar 1 Western Sydney Wanderers 4: Champions´ title defence in tatters|
|Sampdoria swoop for Ajax captain Moisander|
|Barnes: Sterling not ready for big-money move|
|Ferdinand: Ramsey appointment a gamble|
|Ideye hopeful of facing QPR|
|Lampard eyes MLS showdown with Gerrard|
|Ronaldo could face suspension over Clasico celebration|
|Hodgson expects more withdrawals|
|Schalke fans overwhelm Farfan after injury lay-off|
|Swedish third-tier club Dalkurd avoid Germanwings flight|
|Japan v Tunisia: Halilhodzic takes charge of hosts for first time|
|Schweinsteiger brushes aside captaincy pressure|
|Barzagli supports Conte call-ups|
|South Korea v Uzbekistan: Stielike searching for improvement|
|France wary of more balanced Brazil|