Ленинград, 1967 год. Город окутан осенними туманами, когда в районе Обводного канала начинают находить тела женщин. Преступления совершаются ночью, а рядом с каждой жертвой злоумышленник оставляет странные знаки, будто нарисованные углём. Эти символы не похожи ни на что, виденное следователями раньше.
Расследование поручают двум опытным оперативникам. Со стороны КГБ дело ведёт майор Чубин — человек с тяжёлым прошлым. Несколько лет назад он столкнулся с делом об оккультной секте, которое едва не стоило ему жизни. С тех пор темнота стала для него источником скрытого страха, а память о случайной ошибке, приведшей к гибели человека, не даёт покоя. Его партнёром становится капитан милиции Фёдоров. Он прошёл путь от обычного постового, знает город досконально, но и его жизнь далека от простоты. Фёдоров тайно влюблён в жену своего самого близкого друга, и это чувство становится для него постоянным внутренним испытанием.
Руководство требует результатов быстро, ведь убийства происходят в самом центре города, сея панику. Давление на следователей колоссальное. Чубин и Фёдоров вынуждены действовать почти круглосуточно, анализируя каждую деталь. Символы, оставляемые преступником, не соответствуют известным оккультным или криминальным меткам. Это заставляет Чубина снова погрузиться в воспоминания о прошлом провале, искать параллели, которые, возможно, ускользнули тогда.
Фёдоров, в свою очередь, применяет свой опыт патрульной службы. Он досконально изучает район Обводного канала, опрашивает ночных свидетелей, пытается понять логику выбора жертв и мест. Работа идёт тяжело, улик мало, а времени практически нет. С каждым днём напряжение растёт — все понимают, что маньяк может снова ударить.
Двум очень разным людям приходится искать общий язык, чтобы остановить убийцу. Их объединяет не только служебный долг, но и личные демоны, с которыми каждый борется в тишине. Они должны не просто раскрыть преступление, но и опередить его, пока новая трагедия не добавилась к списку.