Captain Colter Stevens ist ein Hubschrauberpilot der US-Armee. Er wacht in einem CTA-Nahverkehrszug nach Chicago auf, kann sich aber nicht erinnern, wie er dort hineingelangt ist. Christina Warren, die ihm gegenübersitzt, scheint Stevens zu kennen und wundert sich über dessen Desorientierung. Nach einem kurzen Zwischenstopp explodiert der Zug mitsamt eines anderen Zuges und reißt alle an Bord befindlichen Personen in den Tod.
Nach seinem scheinbaren Ableben erwacht Stevens in einer Art Cockpit. Auf einem dort befindlichen Bildschirm erscheint eine Frau, die sich als Air-Force-Captain Colleen Goodwin ausgibt und identifiziert Stevens. Sie erklärt ihm, dass er sich in Source Code befindet, einem Programm, das einer Person die Übernahme der letzten acht Minuten des Körpers eines bereits verstorbenen Menschen erlaubt. Die Mission Stevens sei es, den Urheber der im Zug gezündeten Bombe zu finden, zu identifizieren und diese Information an Goodwin in der Gegenwart mitzuteilen. Dies ist umso dringlicher, da der Bombenleger angekündigt hat, eine schmutzige Bombe in der Downtown von Chicago zu zünden. Das würde unvermeidbar den Tod von Millionen von Menschen bedeuten.
Stevens wird erneut in die Vergangenheit entsandt, um den Attentäter ausfindig zu machen. Er kann die Bombe zwar finden, deren Explosion aber nicht verhindern. Zurück in der Gegenwart übt Goodwin Druck auf Stevens aus und bittet ihn, sich nur um den Urheber der Bombe zu kümmern. Am Ende der nächsten Zeitreise berichtet Stevens, er habe Christina Warren vor dem Tod retten können, indem er sie aus dem Zug lockte, bevor er explodierte. Goodwin und der Erfinder von Source Code, Dr. Rutledge, teilen ihm jedoch zu seiner Enttäuschung mit, dass Source Code lediglich eine Reise in eine alternative Realität bedeutet. Stattdessen soll er in der Vergangenheit Informationen sammeln, die den Bombenleger im Hier und Jetzt überführen. Stevens verlangt weitere Informationen über das Projekt, Goodwin und Dr. Rutledge jedoch halten sich zurück und liefern ihm nur die nötigsten Hinweise.
Stevens reist nun immer wieder in die Vergangenheit. Er lernt bei jeder Reise mehr dazu und kommt seinem Ziel scheinbar immer näher.
Am Anfang jeder Reise wacht er im Zug nach Chicago im Körper vom Geschichtslehrer Sean Fentress auf. Eine Anzahl an Ereignissen wiederholt sich bei jeder Reise. Details unterscheiden sich jedoch immer, da sich Stevens (im Körper von Fentress) anders verhält. Hauptsächlich variieren die Ereignisse aufgrund seiner wachsenden Erkenntnisse über den Attentäter und seiner zunehmenden Gefühle für Christina. Immer wieder beschuldigt Stevens einen anderen Zugreisenden, ist jedoch auf der Suche nach dem Attentäter zunächst nicht erfolgreich. Nach jedem Tod von Fentress infolge der Bombenexplosion im Zug ist die Reise in die Vergangenheit bis auf wenige Ausnahmen vorbei. Danach erwacht Stevens immer in seinem Cockpit.
Zwischenzeitlich begleiten Stevens Erinnerungen an die eigene Vergangenheit: Er befindet sich in einem Helikopter auf einer Mission in Afghanistan und steht unter feindlichem Beschuss. Frustriert über die mangelnde Informationsbereitschaft seitens Goodwin und Dr. Rutledge macht er sich in der alternativen Realität selbst auf die Suche nach seinem Schicksal und versucht, mehr Informationen über sich selbst und die Source Code-Betreuer herauszufinden. So erfährt er, dass er bereits verstorben ist. Sein schwer verwundeter Körper wurde offensichtlich von der Air Force beschlagnahmt und von Dr. Rutledge für Source Code verwendet. Goodwin erklärt Stevens, dass das Cockpit, in dem er sich befindet, nur eine Einbildung seines Bewusstseins sei. Auf Anfrage von Stevens ist Dr. Rutledge bereit, die lebenserhaltenen Maßnahmen abzuschalten, wenn dieser seine Aufgabe erfolgreich absolviert.
Stevens will seine Mission erfolgreich beenden, verfolgt aber auch, trotz seiner Kenntnis über die alternative Realität, das persönliche Ziel, das Leben von Christina und, soweit möglich, das Leben der Zugpassagiere zu retten.
Schlussendlich entdeckt er, dass der Attentäter ein amerikanischer Extremist namens Derek Frost ist. Stevens verfolgt Frost zu einem weißen Lieferwagen, in dem auch die radioaktive Bombe versteckt ist. Stevens sowie die hinterhereilende Warren werden tödlich verletzt, Stevens hat aber genug Informationen über Frost und die Bombe. Zurück in der Gegenwart informiert er Dr. Rutledge und Goodwin über seine gewonnenen Erkenntnisse. Die Behörden verhaften Frost und bewahren Chicago vor der Explosion der zweiten, weitaus gefährlicheren Bombe.
Aufgrund Stevens' Erfolg befiehlt Dr. Rutledge das Löschen seiner Erinnerungen, um - entgegen der Abmachung mit Stevens - weitere Missionen mit diesem durchzuführen. Stevens überzeugt Goodwin jedoch, ihn noch ein letztes Mal auf die Reise zu schicken und ihm eine letzte Chance zu geben, den Anschlag auf den Zug zu verhindern. Goodwin unterstützt seinen Wunsch und teilt ihm mit, dass sie die lebenserhaltenen Maßnahmen nach exakt acht Minuten abschaltet.
Mit den Informationen und Erkenntnissen seiner letzten Reisen in Source Code ist Stevens in der Lage, die Bombe im Zug zu entschärfen. Dabei kann er Frost im Zug festsetzen. Die verbleibende Zeit nutzt er für ein Telefonat mit seinem Vater, mit dem er vor seinem Tod in Streit geriet. Stevens und Christina küssen sich in den letzten Sekunden, die Stevens bleiben, bevor die acht Minuten um sind. In diesem Moment stellt Goodwin wie vereinbart die Lebenserhaltungssysteme für dessen Körper ab und riskiert damit ihren Job. Zu Stevens' Überraschung verbleibt sein Bewusstsein jedoch in Fentress' Körper. Er verlässt den Zug mit Christina. In dieser alternativen Welt, in der die Bombe entschärft und der Täter gestellt wurde und daher der Source Code nicht aktiviert werden musste, erhält Goodwin eine E-Mail von Stevens, welche die Ereignisse zusammenfasst und ihr erklärt, wie perfekt Source Code funktioniert und die Realität auch post mortem verändern kann.