Sam Reide (Chris Carmack) a été le témoin du meurtre d'une femme, il se réveille dans une baignoire remplie de glace. Sam peut voyager dans le temps, n'importe quand et n'importe où. En tant que voyant, il utilise ses pouvoirs pour aider la police à arrêter des criminels. Sam prend soin de sa sœur, qui quitte rarement son appartement.
La nuit, Elisabeth (Sarah Habel), la sœur de Rebecca (Mia Serafino), la petite amie de Sam qui a été assassinée, le rencontre dans son appartement. Elle lui demande de l'aider à trouver la vérité sur ce meurtre. Elle pense que les détectives n'ont pas résolu l'affaire, et que l'homme accusé du meurtre est innocent. Sam refuse et consulte Goldburg (Kevin Yon), qui lui rappelle les règles, et qu'il ne peut pas changer son passé ; s'il le fait, des événements terribles peuvent se produire : lorsqu'il est retourné dans le passé pour sauver sa sœur d'un incendie, ce qu'il a réussi à faire, ce sont ses parents qui sont morts.
La barmaid Vicki (Melissa Jones) séduit Sam, et ils font l'amour. Sam s'arrête lorsqu'il voit la photo de Rebecca. Il change alors d'avis et décide d'aider Elizabeth. Il essaye d'aider Lonnie, l'homme condamné à mort pour la mort de Rebecca, sans voyager dans le temps, mais Lonnie refuse en croyant que Sam est le meurtrier. Sam, frustré, voyage jusqu'à la nuit du meurtre, en juin 1998. Il trouve Elizabeth et il lui demande d'entrer dans sa voiture. Il monte dans la chambre de Rebecca mais il la trouve déjà morte. Ensuite, Elizabeth est attaquée par un individu assis sur le siège arrière, qui la tue avec une scie.
Lorsque Sam retourne dans le présent, tout a changé, il ne travaille plus dans la police. Il est devenu un suspect pour le meurtre de Rebecca. Lonnie est devenu avocat, et il a été témoin de la conversation que Sam, en 1998, avait eu avec Elizabeth. Sam va voir Goldburg, ce dernier lui propose d'aller au moment où le troisième meurtre a été commis, et d'essayer de découvrir l'identité du meurtrier sans changer le passé. Sam rend visite à sa sœur mais elle refuse de l'aider.
Sam voyage jusqu'en en septembre 2000, et entre à l'appartement d'Anita Barnes (Chantel Giacalone), la troisième victime. Elle est attaquée par un homme qui essaye de la violer ; en fait, il s'agit de son ami qui essaye de réaliser le fantasme de la fille. Sam retourne dans le présent, découvre que Goldburg a disparu et que Lonnie était la troisième victime, alors que Barnes est toujours en vie. Jenna suspecte son frère d'être le meurtrier. Sam rencontre Vicki dans le bar, mais à présent elle a un ami. Peu de temps après, elle est attaquée par un tueur en série, puis son corps est retrouvé par la police. Sam est arrêté, mais comme il n'y a pas de preuve solide, il est relâché. Il retourne en septembre 2004, en utilisant le cahier qu'il a volé dans la salle d'interrogatoire.
De retour dans le présent, il est dans la chambre de sa sœur qui se rend à son travail. Sam retourne à l'endroit où Vicki a été tuée mais il est arrêté par la police. Il convainc le détective Glenn de le libérer. Il retourne dans le passé et trouve Goldburg sévèrement blessé. Le pied de Sam est pris dans un piège ; le tueur s'approche de Sam et enlève son masque, et à sa surprise il reconnait... Jenna, qui peut aussi voyager dans le temps. Elle ressent un amour incestueux pour son frère, et a tué toutes les femmes supposées être ses petites amies. Sam voyage alors jusqu'au moment où a eu lieu l'incendie, et au lieu de sauver Jenna il la piège dans sa chambre. Plus tard, Sam se trouve dans une voiture avec Elizabeth et Jenna, sa petite fille (Alexis Sturr). Le film se termine avec Jenna (la fille) qui, tout en souriant, place une poupée Barbie sur une grille de cuisson.