Rubin, the surprise 2008 champions, and CSKA Moscow had already secured two of Russia's three berths in Europe's most prestigious club competition before Sunday's games kicked off, but Dynamo, lying in third, needed a point to make sure that Urals side Amkar would be unable to leapfrog them.
Zenit, meanwhile, in fifth place, had already resigned themselves to missing out on Champions League soccer after drawing their previous game 1-1 at Amkar, but were desperate for the three points to remain well-placed to take one of the two UEFA Cup spots on offer.
The Zenit vs Dynamo match also saw two intriguing individual stories, with the St. Petersburg club's record signing, Danny, facing his former club. The Portuguese international left Dynamo in August after Gazprom-controlled Zenit paid the $44 million buy-out fee stipulated in his contract. Danny had been with the Moscow club since 2005, and has a Cyrillic 'D' for Dynamo tattooed on his shoulder.
Another player facing ex-teammates was Aleksander Kerzhakov, who spent five happy years at Zenit from 2001 to 2006, leaving the club after falling out of favor with then-new trainer Dick Advocaat.
The match started slowly, and chances were few and far between in the first 45 minutes. But within eight minutes of the restart, Dynamo had the ball in the net, Argentine defender Leandro Fernandez hammering home after Zenit keeper Vyacheslav Malafeyev saved well from a corner.
Zenit fans did not take the goal well, and let off a series of smoke bombs that resulted in the game being delayed for seven minutes. Zenit supporters also unfurled a banner that read, "Your Yashin snuffed it, and Dynamo will too," a reference to the Moscow side's legendary keeper, Lev Yashin, the only goalkeeper to be named European Player of the Year.
Zenit have already apologized for the unsanctioned banner on their official website.
When the clouds of smoke finally dispersed, Zenit began the task of trying to rescue the game and, to an extent, their season. Their were few clear-cut chances for the 2007 champions however, the best a tightly-angled shot by Andrei Arshavin and a clever long-range punt from captain Anatoly Tymoschuk, until Turkish striker Fatih Tekke hit home his eighth goal of the season from just inside the box in the 79th minute.
Both sides had chances to win it in the final minutes, but the 1-1 final score was a fair result, and means that Dynamo will make their debut in the Champions League qualifying rounds next season. Their final league match is at home to Tom Tomsk next weekend, and admission is free.
The game will be Dynamo's last home match for some time, as rebuilding work is due to start on the world's only constructivist stadium, forcing Dynamo to play their 2009 league games at the home of Moscow Region side Khimki. It is not yet clear where they will host their European guests.
The draw against Dynamo means that Zenit remain fifth, but will now most likely have to win in Moscow against Spartak next Saturday to secure a UEFA Cup place. Failure to pick up all three points could see them overtaken by Volga city side Krilya Sovetov or Lokomotiv Moscow, and even Spartak, should they lose to the perennial 1990s Russian champions.
In other results, Khimki made sure of Premier League soccer next year with a 2-1 win away to Spartak Nalchik. The win means that Vladivostok club Luch Energiya, based in Russia's Far East and by far the most unpopular away fixture in the Premier League, and Yaroslavl side Shinnik drop down into the First Division.
In other results, CSKA's Vagner Love scored three as his club beat champions elect Rubin 4-0 in the Russian capital. The hat-trick takes the Brazilian striker's total to seven for the week, following on from four in a 4-0 away win against Moskva FC.
This season is the first time the top three teams in the Russian Premier League have qualified for the 2009/10 Champions League, with Dynamo, as the third-placed team, starting in the second qualifying round. The still-to-be-decided fourth- and fifth-placed teams will enter the UEFA Cup.
Weekend results -
CSKA Moscow 4-0 Rubin
Luch Energiya 2-2 Spartak Moscow
Zenit 1-1 Dynamo 1
Tom Tomsk 0-1 Amkar
Saturn 0-0 Krilya Sovetov
Terek 0-0 Shinnik
Lokomotiv Moscow 3-2 Moskva FC
Spartak Nalchik 1 Khimki 2
Table (29 games)
Rubin - 60
CSKA Moscow - 56
Dynamo Moscow - 51
Amkar - 48
Zenit St Petersburg - 45
Krilya Sovetov - 45
Spartak Moscow - 44
Lokomotiv Moscow - 44
Terek Grozny -35
FC Moskva -35
Saturn -32
Spartak Nalchik - 31
Tom Tomsk -29
Khimki -27
Luch-Energiya -21
Shinnik -19