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'
|Karanka delighted with Boro´s game management|
|Middlesbrough 1 Hull City 0: Ramirez sinks sorry Tigers|
|Can Arsenal break the Basel curse? The Champions League in Opta Numbers|
|Everton confirm serious knee injury for Bolasie|
|Stam set for Old Trafford reunion in FA Cup third round|
|Sanchez, Ozil contract talks not just about money - Wenger|
|It is normal my son says I´ll coach Inter, I will - Simeone|
|Chapecoense confirmed as Copa Sudamericana champions|
|Sullivan backs Bilic to reverse Hammers´ fortunes|
|It was close...very close - Hummels reveals level of Man United interest|
|What You Might Have Missed: An FA Cup comeback of all comebacks and Monaco can´t stop scoring|
|Preston fans to be refunded from Beckford, Doyle fight fines|
|In-demand Lindelof ´happy to stay at Benfica´|
|FA charges City and Chelsea for late fracas|
|Darmstadt sack coach and sporting director after dismal run|
|Anyone who says they would not sign Messi is a liar! - Caballero|
|Roberto warns Madrid: Barcelona will cut the gap|
|Emery: Champions League top spot was always PSG´s priority|
|Guardiola brands Sanchez transfer rumours as lies|
|Boateng ruled out of Bayern´s clash with Atletico|
|FA confirms four-game ban for Aguero|
|Blatter FIFA ban remains after CAS dismisses appeal|
|Luis Enrique: I don´t give a damn about beating Gladbach|
|Emre hits out at Allardyce´s style... and slams his chewing gum|
|Bravo the world´s best goalkeeper, says Pellegrini|
|Ibrahimovic: I know how to kick someone and make him fall asleep|
|Barcelona and Real Madrid would not win 5-0 in Ligue 1 - Verratti|
|Seedorf out, Eriksson in at second-tier Chinese club|
|Tevez to China? Shanghai Shenhua claim ´breakthrough´ in talks|
|´English football is not more pure´ – Pochettino will not slam Alli for ´dive´|
|Gudjohnsen offers his services to Chapecoense|
|Savicevic: Champions League qualification paramount for Milan|
|Wenger: West Ham could take two years to settle|
|River Plate play in green as tribute to Chapecoense|
|Roberto Carlos open to coaching in A-League|
|Wenger confident there is more to come from Arsenal|
|Kane wants to see out career at Tottenham|
|Aguero challenge labelled ´crazy´ by disappointed Cahill|
|Mourinho ´has nothing to hide´ over tax affairs|
|Guardiola happy despite City setback|
|Ibrahimovic: I tried to avoid Coleman|
|Pogba hits out at ´distorted´ holiday claim|
|Nice 3 Toulouse 0: Plea strikes again as hosts go top|
|In-demand Belotti extends Torino stay|
|Mourinho defends decision to bring on Fellaini|
|Man Utd performances much better under me, says Mourinho|
|Draw the least Everton deserved against Manchester United, says Koeman|
|Mourinho fumes at media double standards|
|Mourinho has ´no thoughts´ on Fellaini penalty incident|
|Neville unimpressed by ´idiotic´ Fellaini|
|Manchester United are the Premier League´s worst team for dropping points with late goals|
|Manchester United mocked after Fellaini congratulations|
|´We have to put it right´ - Jones frustrated as United lose another late lead|
|Lulic sparks racism storm with Rudiger insult|
|Everton 1 Manchester United 1: Late Baines penalty denies Mourinho|
|Eto´o prefers Iniesta to Ronaldo and Messi: He deserves four Ballons d´Or|
|Liverpool join unfortunate group after Bournemouth collapse|
|Strootman praises Roma´s mental strength after derby win|
|Comeback win over Liverpool a special day for Bournemouth - Howe|
|Liverpool stopped playing football in Bournemouth collapse - Klopp|
|Lazio 0 Roma 2: Strootman and Nainggolan continue Giallorossi dominance|
|Bournemouth hero Ake hails incredible comeback win over Liverpool|
|Montella hails Lapadula´s ´fairytale´ rise to AC Milan stardom|
|Beautiful football is Guardiola´s Bayern legacy - Rummenigge|
|Bournemouth 4 Liverpool 3: Stunning comeback leaves Klopp´s men reeling|
|Lopes set for several weeks of treatment on ´sound trauma´|
|Lapadula: This is just the start of my Milan journey|
|AC Milan 2 Crotone 1: Lapadula winner spares Niang´s blushes|
|Torres fit for Bayern Munich clash|
|Dortmund´s Sahin fears eased|
|Eto´o: Guardiola still the best coach in the world|
|Carvajal apologises for swearing at Barcelona fans|
|MP calls for examination of Mourinho tax avoidance allegations|
|A-League Review: Sydney go six points clear at top as Adelaide clinch first win|
|Referee sorry amid fall-out from Werner dive controversy|
|Pique taking inspiration from 2014-15 turnaround|
|Aulas: Lyon should be awarded win after Metz clash is abandoned|
|Emery: PSG must learn from defeat|
|Marotta: Best to laugh at Pogba comments|
|Mourinho: I´m bringing back Manchester United DNA|
|De Boer: Nobody in charge at Inter|
|Chapecoense to be named Copa Sudamericana champions - Tozzo|
|Bilic: We are in a relegation fight|
|Aubameyang: I don´t know if I´ll be at Dortmund next season|
|Goals will return for Higuain, says Allegri|
|Southgate hopes to convince Zaha to play for England|
|Simeone will go to Inter, says son Giovanni|
|Watford fan dies after falling ill during West Brom clash|