Офицеры ВМФ, капитан-лейтенанты Пётр Орлов (Марат Башаров) и Иван Муравьёв (Дмитрий Ульянов), служат на подлодке «Славянка» уже давно. Когда-то они были лучшими друзьями. В 1986 году вместе прибыли в Севастополь для прохождения службы. Там же встретили красивую девушку и оба влюбились в неё с первого взгляда. Нелли (Чулпан Хаматова) выбрала Ивана. Тогда дружба офицеров дала трещину.
В начале 1990-х годов, после распада СССР и раздела советского флота, экипаж «Славянки», отказавшись принять украинскую присягу, был переведён на Северный флот. С тех пор и жизнь, и служба идут своим чередом. И очередной выход в море — боевые плановые учения. Командир корабля, капитан первого ранга Геннадий Янычар (Андрей Краско), оглашает поставленную задачу. Уничтожив торпедной атакой условного противника и уйдя от преследования, подводная лодка должна на время исчезнуть из поля зрения и остаться незамеченной в течение 24 часов. На борту также присутствует гражданский врач Черненко (Сергей Маковецкий).
Никто в учебном центре не знает, в какую сторону будет двигаться подлодка. И никто не предполагает, что случится беда: волны от взрывов растревожат «спящую» со времён Великой Отечественной войны морскую мину, которая медленно тронется навстречу субмарине, в результате взрыва которой лодка ляжет на грунт и незатопленным останется лишь один отсек. При взрыве гибнут несколько членов экипажа, в том числе командир корабля. Черненко, Орлов и матрос Молодой оказываются в полузатопленном отсеке, но им удаётся пробиться в непострадавший отсек Ивана Муравьёва, где находятся и другие члены экипажа. Подводники ищут способ спастись и решают выбраться в водолазных скафандрах через торпедные аппараты, но выясняется, что из-за халатности старшего мичмана Крауза (Сергей Гармаш) исправен лишь один изолирующий дыхательный аппарат ИДА-59. Крауз пытается застрелиться, но сослуживцы его обезоруживают. В итоге команда принимает решение отправить наверх Черненко, и тот успешно выбирается на берег. В свою очередь, членам экипажа «Славянки» не остаётся ничего, кроме как ждать спасателей, но прибудут они вовремя или нет, остаётся неизвестным.