40-й чемпионат СССР по хоккею с мячом проходил с 22 ноября 1987 года по 8 марта 1988 года.
Впервые за много лет формула проведения соревнований была изменена. Сначала команды провели предварительные турниры по географическому принципу: Восток, Запад. Затем лучшие из них разыграли в финальном турнире места с 1-го по 6-е, а остальные — с 7-го по 14-е. В высшей лиге играли 14 команд. Сыграно 170 матчей, в них забито 1350 мячей.
Чемпионом СССР в девятый раз подряд стала команда «Енисей» (Красноярск).
Высшая лига
Предварительный этап + МЗападная группа1234567ВНПМячиО 1«Динамо» (Москва) |style="background:#999999;"| |style="background:#ffffff;"|4:3 6:2 |style="background:#ffffff;"|5:2 5:10 |style="background:#ffffff;"|7:5 3:5 |style="background:#ffffff;"|7:4 2:4 |style="background:#ffffff;"|5:2 1:3 |style="background:#ffffff;"|4:2 8:2 |style="background:#ffffff;"|8 |style="background:#ffffff;"|0 |style="background:#ffffff;"|4 |style="background:#ffffff;"|57 — 44 = + 13 |style="background:#ffffff;"|16 2«Зоркий» (Красногорск) |style="background:#ffffff;"|2:6 3:4 |style="background:#999999;"| |style="background:#ffffff;"|10:7 3:4 |style="background:#ffffff;"|2:2 3:6 |style="background:#ffffff;"|9:1 4:2 |style="background:#ffffff;"|7:3 3:3 |style="background:#ffffff;"|4:2 5:3 |style="background:#ffffff;"|6 |style="background:#ffffff;"|2 |style="background:#ffffff;"|4 |style="background:#ffffff;"|55 — 43 = + 12 |style="background:#ffffff;"|14 3«Старт» (Горький) |style="background:#ffffff;"|10:5 2:5 |style="background:#ffffff;"|4:3 7:10 |style="background:#999999;"| |style="background:#ffffff;"|7:1 2:5 |style="background:#ffffff;"|5:1 5:2 |style="background:#ffffff;"|8:4 5:7 |style="background:#ffffff;"|2:2 0:3 |style="background:#ffffff;"|6 |style="background:#ffffff;"|1 |style="background:#ffffff;"|5 |style="background:#ffffff;"|57 — 48 = + 9 |style="background:#ffffff;"|13 4«Юность» (Омск) |style="background:#ffffff;"|5:3 5:7 |style="background:#ffffff;"|6:3 2:2 |style="background:#ffffff;"|5:2 1:7 |style="background:#999999;"| |style="background:#ffffff;"|5:1 3:4 |style="background:#ffffff;"|3:2 1:4 |style="background:#ffffff;"|3:1 2:4 |style="background:#ffffff;"|6 |style="background:#ffffff;"|1 |style="background:#ffffff;"|5 |style="background:#ffffff;"|41 — 40 = + 1 |style="background:#ffffff;"|13 5«Водник» (Архангельск) |style="background:#ffffff;"|4:2 4:7 |style="background:#ffffff;"|2:4 1:9 |style="background:#ffffff;"|2:5 1:5 |style="background:#ffffff;"|4:3 1:5 |style="background:#999999;"| |style="background:#ffffff;"|6:2 3:1 |style="background:#ffffff;"|6:1 2:1 |style="background:#ffffff;"|6 |style="background:#ffffff;"|0 |style="background:#ffffff;"|6 |style="background:#ffffff;"|36 — 45 = — 9 |style="background:#ffffff;"|12 6«Волга» (Ульяновск) |style="background:#ffffff;"|3:1 2:5 |style="background:#ffffff;"|3:3 3:7 |style="background:#ffffff;"|7:5 4:8 |style="background:#ffffff;"|4:1 2:3 |style="background:#ffffff;"|1:3 2:6 |style="background:#999999;"| |style="background:#ffffff;"|4:1 2:2 |style="background:#ffffff;"|4 |style="background:#ffffff;"|2 |style="background:#ffffff;"|6 |style="background:#ffffff;"|37 — 45 = — 8 |style="background:#ffffff;"|10 7«Строитель» (Сыктывкар) |style="background:#ffffff;"|2:8 2:4 |style="background:#ffffff;"|3:5 2:4 |style="background:#ffffff;"|3:0 2:2 |style="background:#ffffff;"|4:2 1:3 |style="background:#ffffff;"|1:2 1:6 |style="background:#ffffff;"|2:2 1:4 |style="background:#999999;"| |style="background:#ffffff;"|2 |style="background:#ffffff;"|2 |style="background:#ffffff;"|8 |style="background:#ffffff;"|24 — 42 = — 18 |style="background:#ffffff;"|6+
+ МВосточная группа1234567ВНПМячиО 1«Енисей» (Красноярск) |style="background:#999999;"| |style="background:#ffffff;"|5:4 2:6 |style="background:#ffffff;"|8:5 4:3 |style="background:#ffffff;"|11:2 1:1 |style="background:#ffffff;"|8:2 8:5 |style="background:#ffffff;"|4:4 10:4 |style="background:#ffffff;"|8:3 5:1 |style="background:#ffffff;"|9 |style="background:#ffffff;"|2 |style="background:#ffffff;"|1 |style="background:#ffffff;"|74 — 40 = + 34 |style="background:#ffffff;"|20 2СКА (Хабаровск) |style="background:#ffffff;"|6:2 4:5 |style="background:#999999;"| |style="background:#ffffff;"|3:3 8:5 |style="background:#ffffff;"|8:3 4:6 |style="background:#ffffff;"|2:2 3:9 |style="background:#ffffff;"|10:4 4:3 |style="background:#ffffff;"|4:3 9:4 |style="background:#ffffff;"|7 |style="background:#ffffff;"|2 |style="background:#ffffff;"|3 |style="background:#ffffff;"|65 — 49 = + 16 |style="background:#ffffff;"|16 3СКА (Свердловск) |style="background:#ffffff;"|3:4 5:8 |style="background:#ffffff;"|5:8 3:3 |style="background:#999999;"| |style="background:#ffffff;"|4:0 1:5 |style="background:#ffffff;"|3:3 5:4 |style="background:#ffffff;"|7:3 2:1 |style="background:#ffffff;"|10:3 3:0 |style="background:#ffffff;"|6 |style="background:#ffffff;"|2 |style="background:#ffffff;"|4 |style="background:#ffffff;"|51 — 42 = + 9 |style="background:#ffffff;"|14 4«Динамо» (Алма-Ата) |style="background:#ffffff;"|1:1 2:11 |style="background:#ffffff;"|6:4 3:8 |style="background:#ffffff;"|5:1 0:4 |style="background:#999999;"| |style="background:#ffffff;"|6:0 0:4 |style="background:#ffffff;"|7:4 2:4 |style="background:#ffffff;"|2:1 2:2 |style="background:#ffffff;"|5 |style="background:#ffffff;"|2 |style="background:#ffffff;"|5 |style="background:#ffffff;"|36 — 44 = — 8 |style="background:#ffffff;"|12 5«Саяны» (Абакан) |style="background:#ffffff;"|5:8 2:8 |style="background:#ffffff;"|9:3 2:2 |style="background:#ffffff;"|4:5 3:3 |style="background:#ffffff;"|4:0 0:6 |style="background:#999999;"| |style="background:#ffffff;"|5:1 4:4 |style="background:#ffffff;"|3:3 4:4 |style="background:#ffffff;"|3 |style="background:#ffffff;"|5 |style="background:#ffffff;"|4 |style="background:#ffffff;"|45 — 47 = — 2 |style="background:#ffffff;"|11 6«Кузбасс» (Кемерово) |style="background:#ffffff;"|4:10 4:4 |style="background:#ffffff;"|3:4 4:10 |style="background:#ffffff;"|1:2 3:7 |style="background:#ffffff;"|4:2 4:7 |style="background:#ffffff;"|4:4 1:5 |style="background:#999999;"| |style="background:#ffffff;"|3:2 2:3 |style="background:#ffffff;"|2 |style="background:#ffffff;"|2 |style="background:#ffffff;"|8 |style="background:#ffffff;"|37 — 60 = — 23 |style="background:#ffffff;"|6 7«Локомотив» (Иркутск) |style="background:#ffffff;"|1:5 3:8 |style="background:#ffffff;"|4:9 3:4 |style="background:#ffffff;"|0:3 3:10 |style="background:#ffffff;"|2:2 1:2 |style="background:#ffffff;"|4:4 3:3 |style="background:#ffffff;"|3:2 2:3 |style="background:#999999;"| |style="background:#ffffff;"|1 |style="background:#ffffff;"|3 |style="background:#ffffff;"|8 |style="background:#ffffff;"|29 — 55 = — 26 |style="background:#ffffff;"|5+
В верхних строках таблиц приведены результаты домашних матчей, а в нижних-результаты игр на выезде.
Финальный этап +Мза 1-6 места123456ВНПМячиОО-ПО-Σ 1«Енисей» (Красноярск) |style="background:#999999;"| |style="background:#ffffff;"|9:2 2:8 |style="background:#ffffff;"|4:2 5:4 |style="background:#ffffff;"|5:1 7:3 |style="background:#ffffff;"|11:2 10:6 |style="background:#ffffff;"|4:0 5:2 |style="background:#ffffff;"|9 |style="background:#ffffff;"|0 |style="background:#ffffff;"|1 |style="background:#ffffff;"|62 — 30 = + 32 |style="background:#ffffff;"|18 |style="background:#ffffff;"|6 |style="background:#ffffff;"|24 2«Динамо» (Москва) |style="background:#ffffff;"|8:2 2:9 |style="background:#999999;"| |style="background:#ffffff;"|3:2 4:6 |style="background:#ffffff;"|6:2 5:5 |style="background:#ffffff;"|9:5 13:9 |style="background:#ffffff;"|7:4 5:2 |style="background:#ffffff;"|7 |style="background:#ffffff;"|1 |style="background:#ffffff;"|2 |style="background:#ffffff;"|62 — 46 = + 16 |style="background:#ffffff;"|15 |style="background:#ffffff;"|6 |style="background:#ffffff;"|21 3СКА (Хабаровск) |style="background:#ffffff;"|4:5 2:4 |style="background:#ffffff;"|6:4 2:3 |style="background:#999999;"| |style="background:#ffffff;"|8:3 2:4 |style="background:#ffffff;"|3:2 6:9 |style="background:#ffffff;"|7:3 9:5 |style="background:#ffffff;"|5 |style="background:#ffffff;"|0 |style="background:#ffffff;"|5 |style="background:#ffffff;"|49 — 42 = + 7 |style="background:#ffffff;"|10 |style="background:#ffffff;"|5 |style="background:#ffffff;"|15 4«Зоркий» (Красногорск) |style="background:#ffffff;"|3:7 1:5 |style="background:#ffffff;"|5:5 2:6 |style="background:#ffffff;"|4:2 3:8 |style="background:#999999;"| |style="background:#ffffff;"|13:5 6:3 |style="background:#ffffff;"|4:2 4:2 |style="background:#ffffff;"|5 |style="background:#ffffff;"|1 |style="background:#ffffff;"|4 |style="background:#ffffff;"|45 — 45 = 0 |style="background:#ffffff;"|11 |style="background:#ffffff;"|2 |style="background:#ffffff;"|13 5«Старт» (Горький) |style="background:#ffffff;"|6:10 2:11 |style="background:#ffffff;"|9:13 5:9 |style="background:#ffffff;"|9:6 2:3 |style="background:#ffffff;"|3:6 5:13 |style="background:#999999;"| |style="background:#ffffff;"|6:4 4:4 |style="background:#ffffff;"|2 |style="background:#ffffff;"|1 |style="background:#ffffff;"|7 |style="background:#ffffff;"|51 — 79 = — 28 |style="background:#ffffff;"|5 |style="background:#ffffff;"|4 |style="background:#ffffff;"|9 6СКА (Свердловск) |style="background:#ffffff;"|2:5 0:4 |style="background:#ffffff;"|2:5 4:7 |style="background:#ffffff;"|5:9 3:7 |style="background:#ffffff;"|2:4 2:4 |style="background:#ffffff;"|4:4 4:6 |style="background:#999999;"| |style="background:#ffffff;"|0 |style="background:#ffffff;"|1 |style="background:#ffffff;"|9 |style="background:#ffffff;"|28 — 55 = — 27 |style="background:#ffffff;"|1 |style="background:#ffffff;"|1 |style="background:#ffffff;"|2+
При определении итоговых мест в финале за 1-6 места командам добавлены очки, набранные ими в играх между собой на предварительном этапе. В таблице эти результаты не показаны.
+Мза 7-14 места7891011121314ВНПМячиОО-ПО-Σ 7«Водник» (Архангельск) |style="background:#999999;"| |style="background:#ffffff;"|9:0 5:2 |style="background:#ffffff;"|7:3 4:7 |style="background:#ffffff;"|5:1 4:6 |style="background:#ffffff;"|11:2 1:5 |style="background:#ffffff;"|1:3 6:4 |style="background:#ffffff;"|10:1 1:4 |style="background:#ffffff;"|5:1 4:4 |style="background:#ffffff;"|8 |style="background:#ffffff;"|1 |style="background:#ffffff;"|5 |style="background:#ffffff;"|73 — 43 = + 30 |style="background:#ffffff;"|17 |style="background:#ffffff;"|12 |style="background:#ffffff;"|29 8«Юность» (Омск) |style="background:#ffffff;"|2:5 0:9 |style="background:#999999;"| |style="background:#ffffff;"|4:3 4:6 |style="background:#ffffff;"|4:3 1:3 |style="background:#ffffff;"|2:1 4:4 |style="background:#ffffff;"|7:4 2:4 |style="background:#ffffff;"|2:2 4:4 |style="background:#ffffff;"|5:2 4:2 |style="background:#ffffff;"|6 |style="background:#ffffff;"|3 |style="background:#ffffff;"|5 |style="background:#ffffff;"|45 — 52 = — 7 |style="background:#ffffff;"|15 |style="background:#ffffff;"|13 |style="background:#ffffff;"|28 9«Динамо» (Алма-Ата) |style="background:#ffffff;"|7:4 3:7 |style="background:#ffffff;"|6:4 3:4 |style="background:#999999;"| |style="background:#ffffff;"|6:3 0:6 |style="background:#ffffff;"|2:1 5:6 |style="background:#ffffff;"|4:4 4:5 |style="background:#ffffff;"|5:4 1:5 |style="background:#ffffff;"|1:2 2:1 |style="background:#ffffff;"|6 |style="background:#ffffff;"|1 |style="background:#ffffff;"|7 |style="background:#ffffff;"|49 — 56 = — 7 |style="background:#ffffff;"|13 |style="background:#ffffff;"|12 |style="background:#ffffff;"|25 10«Строитель» (Сыктывкар) |style="background:#ffffff;"|6:4 1:5 |style="background:#ffffff;"|3:1 3:4 |style="background:#ffffff;"|6:0 3:6 |style="background:#999999;"| |style="background:#ffffff;"|7:2 0:3 |style="background:#ffffff;"|4:2 0:4 |style="background:#ffffff;"|9:3 5:1 |style="background:#ffffff;"|6:2 4:0 |style="background:#ffffff;"|9 |style="background:#ffffff;"|0