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'
|Valverde still seeking Herrera solution|
|Mourinho defends decision to rest Costa|
|Bundesliga Preview: Bayern provide Zinnbauer´s first test while Japanese pair collide|
|Barca suffered against APOEL - Xavi|
|Injuries temper Garcia joy|
|Stepanenko credits Lucescu tactics|
|La Liga Preview: Real out to end slump, pacesetters Barca visit Levante|
|City were hard done by - Hart|
|Maribor 1 Sporting Lisbon 1: Zahovic nets dramatic late leveller|
|Bayern Munich 1 Manchester City 0: Late Boateng strike settles opener|
|Barcelona 1 APOEL 0: Pique´s header gets Enrique up and running in Europe|
|Chelsea 1 Schalke 1: Huntelaar earns point for visitors|
|Ajax 1 Paris Saint-Germain 1: Schone free-kick denies visitors|
|Athletic Bilbao 0 Shakhtar Donetsk 0: Visitors secure valuable point|
|Porto 6 BATE 0: Brahimi hits hat-trick as Portuguese giants make history|
|Roma 5 CSKA Moscow 1: Returning trio inspire thumping win|
|Mandzukic to have surgery on broken nose|
|Duo back to strengthen Leicester options|
|Girard not underestimating Krasnodar|
|Ligue 1 Preview: Monaco out to build on Champions League win|
|Conte adapting to Italy challenge|
|Lambert pens new Villa deal|
|Eredivisie Preview: AZ begin life after Van Basten, Ajax and Feyenoord meet|
|Leverkusen sweat on Toprak fitness|
|Mazzarri optimistic ahead of Dnipro clash|
|Depay injury not a disaster, says Cocu|
|Roberto signs new Barca deal|
|Dodo and Fernandes handed Brazil call-up|
|Montella eyes strong Fiorentina start|
|Harbin Yiteng 1 Jiangsu Sainty 2: Yang strike heaps more misery on Yiteng|
|Result secondary against Bayern, says Zinnbauer|
|Bony not affected by transfer talk|
|De Bruyne expects stern Everton challenge|
|De Bruyne expects stern Everton challenge|
|Stegeman to stay on at Heracles|
|Immobile: There is more to come|
|Seoul 0 Western Sydney Wanderers 0: Australians hold firm in Korea|
|Benitez calls for unity at Napoli|
|Martinez relishing Wolfsburg test|
|Charlton play down Bent rumours|
|Milan facing Seedorf lawsuit|
|Ramos: Whistles affected Casillas|
|Milanic ´focused´ amid Leeds reports|
|Asamoah: Juve still under pressure|
|FA propose visa overhaul|
|Rodriguez revels in Real rout|
|Wenger preaches patience with Welbeck|
|Kehl suffers groin injury|
|Guardiola: United could not afford my stars|
|Balotelli will build on first goal - Rodgers|
|Ferguson ´the best´, says Rooney|
|Hazard eyeing improvement|
|Gomez confident goals will come|
|CONCACAF Champions League Review: Success for MLS sides|
|Copa Sudamericana Review: Estudiantes advance, Deportivo Cali poised|
|Queiroz signs new Iran contract|
|Sousa confident of Basel improvement|
|Villas-Boas heaps praise on Zenit|
|Jardim: ´We were superior´|
|Ludogorets upbeat after Anfield heartbreak|
|Michel lauds Atletico-like tactics|
|Simeone rues ´very negative´ result|
|Gutierrez diagnosed with testicular cancer|
|Championship Review: Norwich go top, Cardiff lose again|
|Galatasaray´s fighting spirit delights Prandelli|
|Hareide proud of Malmo display|
|Wenger: Dortmund worthy winners|
|Rodgers revels in winning return|
|Pereira calls for calm at Benfica|
|Hasi rues Anderlecht´s inexperience|
|Bellarabi critical of Leverkusen finishing|
|Bale: We showed what we´re made of|
|Koke targets Juve after Olympiacos setback|
|UEFA Europa League Preview: Tough test for Inter, Sevilla host Feyenoord|
|Allegri demands more from Juve|
|Klopp revels in Dortmund ´perfection´|
|League One Review: Sheffield United comeback stuns Colchester, Doyle stars for Chesterfield|
|League Two Review: Burton beaten, Exeter and Oxford claim first wins|
|Gerrard demands better from Liverpool|
|Galatasaray 1 Anderlecht 1: Gala playing catch-up despite late leveller|
|Liverpool 2 Ludogorets 1: Gerrard spot on for hosts|
|Benfica 0 Zenit 2: Hulk helps Zenit make flying start|
|Juventus 2 Malmo 0: Tevez ends Champions League drought to seal win|
|Olympiacos 3 Atletico Madrid 2: Spanish champions stunned by clinical hosts|
|Monaco 1 Bayer Leverkusen 0: Moutinho marks winning return for Monaco|
|Borussia Dortmund 2 Arsenal 0: Immobile and Aubameyang sink visitors|
|Real Madrid 5 Basel 1: Hosts begin title defence with dominant victory|
|Al Hilal 3 Al Ain 0: Al-Shamrani dazzles in frantic first leg|
|Arabian Gulf League Review: Al Ain start with win, Jorginho´s Al Wasl held|
|Al Qadsia 4 Persipura 2: Subotic double gives Al Qadsia the upper hand|
|Everton v Wolfsburg: Martinez eyes next phase of development|
|Time to prove quality - Blanc|
|Lopetegui wary of BATE|
|Schalke dealt Howedes blow|
|Dnipro v Inter: Guarin backs confident Inter|
|Mourinho belittles Europa League|
|Kompany: Time for City to close the gap|
|Lucescu opens up about Shakhtar challenges|
|Ribery out of Champions League clash|
|SFA to investigate Tonev allegations|
|Erbil 1 Kitchee 1: Belencoso gives Kitchee the edge|
|Partizan v Tottenham: Captain Kaboul reports for duty|
|Slomka sacked by Hamburg|
|Garcia not taking CSKA threat lightly|
|Hutton signs new Villa contract|
|Riga set for Blackpool stay|
|De Boer hoping to spring surprise|
|Milanov: De Rossi absence gives CSKA a chance|
|Pique reads nothing into Barca omission|
|Van Basten to step down to assistant role|
|Amat out for six weeks|
|Mourinho confirms Hazard talks|
|Luis Enrique: Champions League not a priority|
|Williams: Swansea learned Chelsea lessons|
|Vargas wants ´long-term´ QPR stay|
|Liverpool are no Champions League tourists, insists Rodgers|
|FIFA temporarily relieve Watson of duties|
|City do not fear Bayern - Milner|
|Everton to explore stadium plans|
|Gardner calls for fans´ support|
|Zidane: Benzema must score|
|Scholes: Liverpool are Champions League dark horses|
|Gerrard hopes for prolific Balotelli|
|Gervinho pens new Roma deal|
|Rodgers praises vice-captain Henderson|
|Argentine Primera Division Review: Independiente goalkeeper bags brace|
|Costa Rican Primera Division Review: Cartagines back to winning ways|
|Ronaldo to United a possibility, says Neville|
|Liga del Futbol Profesional Boliviano Review: Bolivar go top, Blooming slip up|
|Souness throws support behind Pardew|
|Allardyce targets defensive improvement|
|Bruce: Hernandez worth the wait|
|Ecuadorian Primera A Review: Barcelona win El Clasico del Astillero|
|Davies: Draw a fair result|