El capitán Colter Stevens (Jake Gyllenhaal), un soldado que forma parte de un programa experimental del gobierno para investigar un atentado terrorista, despierta en la piel de un viajero del tiempo cuya misión es vivir una y otra vez el atentado a un tren hasta que consiga averiguar quién es el culpable. Guiado por una oficial de comunicaciones (Vera Farmiga) que controlará a Stevens en su viaje a través del tiempo, en el tren el joven conocerá a una viajera (Michelle Monaghan) con la que se implicará emocionalmente.