Машинист локомотива Жак Лантье ощущает в себе потребность убить женщину. Он боится этого и ведёт замкнутую жизнь. Позже он обнаруживает, что влюблён в свой локомотив.
Начальник железнодорожной станции Рубо узнаёт, что его жена Северина в детстве имела отношения с Гранморином, президентом железнодорожного сообщества. Благодаря этому ему и супруге оказывается всяческая протекция. В поезде, следующем из Парижа в Гавр, они убивают Гранморина и выбрасывают тело. Совершив преступление, они перебираются в другой вагон.
Жак тем временем посещает свою кузину Флору, которая живёт со своим отцом стрелочником. У него возникает желание её убить, но он противостоит ему и уходит. Случайно Жак становится свидетелем убийства Гранморена и находит его тело на железнодорожных путях.
Возникает подозрение, что убийство произошло с целью ограбления. Рубо и Северину допрашивает полиция, но выясняют, что у них не было мотива убивать. Жак показывает на Рубо, как на убийцу. Судья приходит к выводу, что преступление совершил чудаковатый Кабуш, который живёт неподалёку, но это остаётся недоказанным.
Отношение между Рубо и Севериной на грани разрыва. Деньги и часы Гранморина они прячут за стенным шкафом. Рубо начинает пить, а Северина и Жак становятся любовниками. Сначала они думают, что Рубо всё знает, но потом их страхи улетучиваются.
Северина сообщает Жаку, что муж заставил её участвовать в убийстве Гранморена. В Жаке снова просыпается желание убить женщину. Он покидает свою квартиру в поисках новой жертвы. Но убийства он не совершает. Позже выясняется, что желание убивать у него пропало. Жак считает, что любовь к Северине его излечила.
Отношения Северины и Рубо разваливаются, когда она понимает, что супруг один потратил награбленное. Жаку удаётся вложить деньги в магазинчик своего друга. Северина предлагает Жаку прикарманить остатки её денег. Рубо – единственная преграда на её пути к счастью. Она предлагает Жаку убить его. Тот подкарауливает Рубо, но нервы у него сдают, и он ретируется.
Кузина Жака, Флора, которая в него влюблена, узнаёт, что он и Северина находятся в отношениях, и решает из ревности убить обоих. Она устраивает железнодорожную катастрофу, в результате которой погибает много людей. Затем Флора бросается под поезд. Жака, который во время катастрофы был ранен, выхаживает Северина.
Севереина попадает в ловушку, устроенную Рубо. Жак должен убить её мужа. Но на него снова находит желание убить женщину. Он закалывает Северину и бежит. Кабуш находит её тело. Полиция считает, что Кабуш убил женщину по приказу Рабу. Обоих арестовывают.
Жак возвращается и снова становится машинистом. Но теперь он ездит на другом локомотиве. Он начинает ухаживать за другой девушкой. Роман заканчивается на сцене, когда Жак управляет поездом, в котором солдаты едут на германо-французский фронт. У него происходит конфликт с кочегаром, начинается драка, и оба выпадают с поезда, который несётся в ночь, полный патриотически настроенных солдат.