High school senior Nick Powell plans to skip his graduation and fly to London for a writing program, despite the plan of his controlling mother, Diane. His mother pressures him to succeed and is emotionally distant.
Nick's best friend, Pete Egan, confides in him that he is bullied by Annie Newton, a troubled teen. Nick attempts to step in on one such occasion, only for it to escalate into a physical confrontation. Annie's closest friends are violent thieves, and her boyfriend, Marcus, is on parole for similar violations.
Nick tells Pete about his plans to leave for London and they say goodbye. Annie decides to rob a jewelry store across the street from where Marcus is stealing a car. Marcus reprimands her, and tries to take the jewels for himself, but Annie keeps them and pushes him to try to stop her. Believing Annie is out of control, Marcus tips off the cops. Annie is arrested and assumes that Pete is responsible because he saw her load the merchandise into her locker.
She later attempts to beat a confession out of Pete. When Annie does not believe his innocence, Pete reluctantly gives up Nick's name, thinking that Nick is already on a plane to London. He is unaware that Nick gave his ticket to a girl at a party, having decided not to go. When Annie and her crew find Nick walking home from the party, they run him off the road and beat him mercilessly. When Annie believes she has killed Nick, they dump his body into a sewer.
The next morning Nick goes to school to find that no one can see or hear him. He returns home to find his mother has filed a missing person's report, and the police are investigating his disappearance. After a while, Nick realizes that he is still alive, but unconscious. When Nick realizes that he is having an out-of-body experience, he reaches out to Annie and Pete to save his life.
Corrupt police Detective Larson seems close to putting together the whole truth, and implies that once he finds Annie he will be able to pin the robberies and murder on Marcus. Since Marcus is still on parole, Detective Larson tells him that even being associated with the murder could send him back to prison. Marcus decides to get involved and kidnaps Pete, forcing him to lead him to Nick's body so they can move it to another location. He conspires to kill Annie and arranges to meet with her. Annie calls Pete to the meeting place as well, who is under surveillance by the police. Distraught, Pete pens a suicide note and takes an overdose of pills to commit suicide as Nick frantically watches, begging him not to do it. Before Pete can fully die and starts to leave his body, Nick confronts him since they can see one another. Pete desperately tries to apologize as police close in. As Annie flees from both Marcus and the police, Nick yells at her and she hears him for the first time.
Although the two cannot have a conversation, she hears some of his voice in her head and can sense his presence. Annie feels her actions weighing on her conscience and stops to visit Nick's room to get a sense of who he is. The two realize that they were similar and, given different circumstances, the two could have been close. Diane catches Annie in his room, and she flees. She returns to the woods to find Nick's body, only to see that it has been moved. She confronts Pete and Marcus to learn the body's location. Marcus tells her, but shoots her in the stomach as she leaves. She shoots Marcus in return, and calls the police to tell them where to find Nick. Nick's body is found in a dam and is saved. After visiting him in the hospital, Annie dies from her wounds.
After leaving the hospital, Nick meets Annie's younger brother, Victor, flying his model plane at the park. They both commemorate Annie by writing her a message on top of the plane and flying it across the river bank.
Justin Chatwin as Nicholas "Nick" Powell
Margarita Levieva as Annelie "Annie" Newton
Marcia Gay Harden as Diane Powell
Chris Marquette as Pete Egan — Nick's best friend. In the book, he is called Pete Geller.
Alex O'Loughlin as Marcus Bohem
Callum Keith Rennie as Detective Brian Larson
Michelle Harrison as Detective Kate Tunney
Tania Saulnier as Suzie
Ryan Kennedy as Matty
Andrew Francis as Dean
Maggie Ma as Danielle
P. Lynn Johnson as Sharon Egan
Serge Houde as Martin Egan
Bilal Sayed as Dino Garcia
Cory Monteith as Jimmy
a remake of the Swedish film of the same name, which was based on the Swedish young adult novel by Mats Wahl.