Seventeen-year-old Pierce Oliviera has just moved with her mother from Connecticut to Isla Huesos, a small island off the coast of South Florida.
In flashbacks, Pierce remembers when she was 7 years old. She and her mother returned to the island for Pierce's grandfather's funeral. While playing in the cemetery, Pierce tries to catch an injured bird, causing it to fly into a crypt and die. Upset because she caused the bird's death, Pierce watches John Hayden bring it back to life. An excited Pierce asks him to do the same for her grandfather. John tells her it would be better to leave her grandfather where he is because her mother and grandmother would be frightened to see him walking around after he has been buried. Pierce's grandmother finds her, and John tells them both goodbye. Her grandmother asks about John. Pierce says she does not know if she likes him because even though he brought the bird back, he did not do the same for her grandfather. Her grandmother assures her that she will like him someday.
Years later, a 15-year-old Pierce tries to rescue another injured bird that is trapped under the cover of her backyard pool. She trips on her scarf, hits her head, falls into the pool and the metal fasteners holding up the pool cover break. Trapped by the pool cover and dragged down by her heavy winter clothes, Pierce drowns.
Pierce wakes up dazed and confused in a subterranean cavern on the shore of a windy lake. A large man in black, who reminds her of a bouncer at nightclub, has her stand in the shorter of two lines that is waiting for a boat.
Pierce sees John approaching, is relieved to see someone she knows and runs out of her line to speak to him. John, not recognizing her, angrily chastises her for leaving her line. When she reminds him of their meeting years before, he gives her his jacket to keep her warm and holds her close to him. When she complains about the cavern they're in, John transports her to his bedroom where she is inexplicably dry and wearing a flowing white dress instead of her wet, winter clothes.
Pierce is even more confused, but John assures her that she is safe. He gives her a gold necklace with a large grey diamond pendant. The diamond is supposed to protect the wearer from evil and help her detect it. Pierce thanks John, but she wants to return home. John tells Pierce that she is dead and cannot leave because the boat to take her to her final destination is gone. There are rules that won't allow her to return to her life, and beings called Furies punish those who break the rules. She has to stay with him forever. Seeing that Pierce is upset, John tries to calm her.
When Pierce puts on the necklace, she notices an open doorway through an arch in the room. She distracts John and runs through it. Suddenly, she wakes up in the emergency room with her mother.
Pierce tells many doctors and psychologists about what she experienced after she died, but they tell her it was not real. She knows her experience is real because she still has the necklace John gave to her. But she is afraid to show it to anyone.
One day, she goes into a jewelry store to compare another stone to her diamond. Upon seeing her necklace, the jeweler grabs Peirce and refuses to let go. The diamond's color changes from gray to black, and Pierce tries to get away, but the jeweler tells his assistant to call the police. John walks into the store and hurts the man. She begs him to stop, and he does.
Thinking John is there to take her back to the Underworld, Pierce runs from him. Weeks later, she notices the jewelry store is closed and is told that the jeweler had a heart attack.
After her accident, Pierce and her best friend, Hannah, drift apart. Hurt by her friend's rejection and John's "protection," Pierce becomes distant and withdrawn. A year and a half later, Pierce is devastated when Hannah commits suicide. Pierce realizes that Hannah and her basketball coach, Mr. Mueller, were having an affair, and the coach ended it. Hannah wrote about the affair in her diary. Pierce's diamond turns black around Mr. Mueller.
Pierce accepts Mr. Mueller's offer for tutoring sessions and hides a video camera to record the coach behaving inappropriately with her. When he does, John materializes in the room and breaks Mr. Mueller's hand. She stops him from hurting Mr. Mueller more than he already has. Because the videotape is too dark for the police to see who assaulted the coach and because Pierce won't give more information about John, Pierce is expelled from school.
Now that she and her mother are in Isla Huesos to make a new start, Pierce rides her bicycle to the cemetery, the place she first met John, hoping to find him there. John finds her and does not want her in the cemetery because it is not safe after dark. She gives him the necklace and apologizes for taking it and any consequences he's had because she left the Underworld. She asks him to stop following her around.
John becomes furious. He throws the necklace into the cemetery, breaks the gates and warns her to stay away from that place and from him.
On the first day of school, the principal and town sheriff cancel a student tradition called Coffin Night, where seniors build and hide a coffin and juniors try to find it. The cemetery sexton, Richard Smith, has Pierce's necklace and asks to meet with her that evening.
Pierce does not want to be charged with vandalizing the cemetery gates. Mr. Smith found the necklace in the cemetery and somehow knows it is hers. He knows John and wants to know Pierce's involvement with him. Pierce tells him everything. In turn, Mr. Smith explains that John, a soldier who died at sea in 1846, is a death deity who is in charge of the portion of the Underworld located on Isla Huesos.
The diamond John gave her is known as the Persephone Diamond. It is said to have been given to Persephone by Hades and was once owned by Marie Antoinette. The necklace was rumored to be aboard a ship that wrecked off the island in 1846, but after the wreck, it was never seen again. Mr. Smith tells Pierce that the Furies, spirits who are unhappy about their final destination, torment John and can posses any human with a weak character.
Mr. Smith also tells Pierce that he noticed a change in John's behavior around the same time as her accident, and he thinks that John loves her and is hurt by how she left him in the Underworld. He asks her to be nice to John.
Pierce goes home. Before she falls asleep, she notices a gecko trapped in her pool. She rescues the animal and finds John waiting for her by the pool. He apologizes to her and is surprised that she is wearing the necklace again. She tells him that she thinks the Furies are after her and had possessed the jeweler and Mr. Mueller. John disagrees saying that because Pierce had treated him poorly, the Furies would be happy with her, and not try to hurt her. They kiss, and John tells Pierce he wants to see her again the following day.
The next day, Pierce's grandmother visits her at school. Pierce realizes that her grandmother has been behind many of the things that have happened to her. The diamond has always turned black around her grandmother. It was her grandmother who sent her out to the cemetery so she could meet John and who knitted the scarf that she tripped on before she fell in the pool. Her grandmother admits that she originally wanted Pierce's mom to attract John's attention, but he wasn't interested in anyone until Pierce came along.
Her grandmother is a Fury who wants John to fall in love and be happy so they can take that happiness away from him. She blames Pierce for ruining her plan and not staying dead. Her grandmother moves to attack Pierce, but John appears and tells her she was right. The Furies have been attacking her. The only way he can protect her is to take her away from her world. In the blink of an eye, she is back in his bedroom in the Underworld, which upsets her. She tries to escape the way she had before, but all the doors back to her world are locked. Pierce realizes that even though she should be angry with John, she is not. Still, she will keep looking for a way back to the living world.