Матчи, в которых решалась судьба золотых медалей, проходили в Ярославле и Москве. В приволжском городе играли местный "Шинник" и московский "Локомотив", а на столичном стадионе "Торпедо" имени Эдуарда Стрельцова выявляли сильнейшего ФК "Москва" и ЦСКА.
Перед последним туром соревнований "Локо" шел на первом месте с 58-ю очками, а ЦСКА - на втором с 57-ю. Для того, чтобы второй год подряд стать чемпионами России, армейцам необходимо было выигрывать у своих соперников и ждать осечки железнодорожников в Ярославле. Однако этого не произошло. Благодаря точным ударам Динияра Билялетдинова и Дмитрия Сычева в первом тайме "Локомотив" оформил победу, а вместе с ней - и чемпионство в сезоне 2004 года.
ЦСКА также выиграл - 4:1, однако, как оказалось, эта победа уже не была способна изменить что-либо в турнирной таблице.
Борьба за третье место была не менее упорной. На "бронзу" претендовали питерский "Зенит" и самарские "Крылья Советов", у которых перед последним туром было одинаковое количество очков (по 53). Матчи последнего тура конкуренты также выиграли: питерцы - в гостях у волгоградского "Ротора" 5:2, а самарцы - 2:1 у подмосковного "Сатурна" в Раменском. Таким образом, "Крылья" и "Зенит" набрали по 56 очков, но волжане по дополнительным показателям в личных встречах опередили питерцев в споре за "бронзу".
Отдельно стоит отметить, что московское "Динамо" сохранило прописку в премьер-лиге. В 30-м туре команда Олега Романцева сыграла вничью со столичным "Спартаком" - 1:1 (голы забили Владимир Бесчастных у "Динамо" и Михайло Пьянович у "Спартака"). Бело-голубые набрали 29 очков и гарантировали себе место в элите российского футбола независимо от исхода матча в Перми, где местный "Амкар" уступил со счетом 1:2 краснодарской "Кубани", которая вылетела в первый дивизион вместе с волгоградским "Ротором".
Результаты матчей 30-го тура чемпионата России:
"Амкар" - "Кубань" - 1:2
"Динамо" - "Спартак" - 1:1
"Ротор" - "Зенит" - 2:5
"Рубин" - "Алания" - 4:1
"Сатурн" - "Крылья Советов" - 1:2
"Торпедо" - "Ростов" - 4:1
ФК "Москва" - ЦСКА - 1:4
"Шинник" - "Локомотив" - 0:2
Итоговое положение команд:
1. "Локомотив" - 61 очко
2. ЦСКА - 60
3. "Крылья Советов" - 56
4. "Зенит" - 56
5. "Торпедо" - 54
6. "Шинник" - 44
7. "Сатурн" - 41
8. "Спартак" - 40
9. ФК "Москва" - 40
10. "Рубин" - 33
11. "Амкар" - 30
12. "Ростов" - 29
13. "Динамо" - 29
14. "Алания" - 28
15. "Кубань" - 28
16. "Ротор" - 22