À l'automne 1972, sur un ponton en bois au bord d'un lac de l'île de Nantucket, deux enfants, Claire et Nathan (8 ans, d'origine française) observent un cygne. Le ponton casse et Claire tombe dans l'eau. Nathan part chercher ses parents en courant à bout de souffle, mais il est percuté par une voiture à proximité de chez lui. Il se voit alors hors de son corps et a l'impression de voler vers une lumière vivante où il se sent bien (voir : expérience de mort imminente). Mais il ne meurt pas ; il sort du coma et un médecin l'interroge sur ce qu'il a vu. Bien des années plus tard, Nathan (Romain Duris), adulte, est avocat à New York et doit traiter un dossier de catastrophe aérienne. Il a épousé Claire (Evangeline Lilly) avec qui il a eu deux enfants, une fille : Tracy (Sara Waisglass) et un garçon : Paul, mais le petit garçon est décédé dans son sommeil et depuis la mort subite du nourrisson, Nathan s'est réfugié dans son travail. Sa femme l'a alors quitté et est partie vivre ailleurs avec leur fille.
Un jour, Nathan rencontre le docteur Joseph Kay (John Malkovich), mystérieux médecin qui se fait connaître sous le titre de « Messager ». Kay prétend savoir que certaines personnes vont mourir lorsqu'il voit un haloblanc qui jaillit d'eux, et pense qu'il est chargé d'aider ces personnes à mettre de l'ordre dans leur vie avant de partir dans l'au-delà. Si Nathan ne croit pas un mot de tout cela, il est néanmoins être le témoin de scènes plus que déconcertantes, semblant confirmer les dires du médecin. Nathan est effrayé qu'il puisse aussi lui arriver quelque chose et devient presque paranoïaque.
Dans le livre, Claire (l'ex-femme de Nathan) s'appelle Mallory, le petit Nathan s'est noyé en voulant la sauver au lieu de se faire écraser, les enfants du couple se nomment Bonnie et Sean (et non Tracy et Paul), le docteur s'appelle Goodrich au lieu de Kay.