As the film opens, high school student Donna Keppel (Brittany Snow) is driving home from the movies. When she goes into her house, she sees her brother dead. She then runs under her bed in her room because she hears the killer. She witnesses her mother murdered by Richard Fenton (Johnathon Schaech), a teacher at her school who has become obsessed with her. Three years later, Donna, about to graduate and living with her aunt Karen (Jessalyn Gilsig) and uncle Jack (Linden Ashby), is in therapy and taking Klonopin (a sedative) to deal with the trauma of losing her family and her persistent nightmares. Donna, her boyfriend Bobby (Scott Porter), her friends Lisa (Dana Davis), Ronnie (Collins Pennie), Michael (Kelly Blatz) and Claire (Jessica Stroup) make plans to attend their senior prom together.
Meanwhile, Detective Winn (Idris Elba), the police officer responsible for imprisoning Fenton, learns that Fenton has escaped three days before Donna's senior prom and decides to stake out Donna's prom.
At the prom, which is being held at the Pacific Grand Hotel, Donna and her friends get keys to a suite in the hotel. Fenton is already at the hotel. He gets a room in the hotel and kills the housekeeper to obtain the master key, then hides in Donna's hotel room. She hears noises and calls out but no one answers. She opens the door and Claire, who has been in a fight with Michael, surprises her. Claire says that she will be back down when she fixes her make-up. After Donna leaves, Claire hears noises and checks to see if it is Donna. Fenton then grabs her around the throat, pushes her into the bedroom and despite her screams for help, she is stabbed and killed.
Detectives Winn and Nash (James Ransone), Winn's partner, find the body of a man named Ramsey supposedly registered at the hotel. It turns out that Fenton killed this man and stole his car, clothes and wallet to get a room. The Car was reported stolen by his wife.
Up in the suite's bathroom, Fenton is looking at pictures taken when Donna was in the limousine. Claire's dead body is lying on the bathroom floor with stab marks in her. Michael comes into the suite to see if Claire will accept his apology. He sees the bathroom door locked and tries to open it unaware the killer is inside, he cannot open the door so sits down on a sofa, the bathroom door then opens and he looks round and see nobody and then checks the bathroom he does not find Claire, then while exiting sees the closet door shut. He goes up to the closet and opens it and sees Fenton's face. Fenton jumps at him and stabs him to death.
Back downstairs, Donna, Bobby, Lisa and Ronnie are sitting at a table, and they notice that Claire and Michael have been missing for a while. The hotel reception can't contact their suite's maid so they get a employee to go and see where she is. He asks Fenton if he has seen the maid and Fenton says that she is in his room. The man goes in and Fenton kills him to obtain his uniform.
Lisa and Ronnie head up to the suite and Lisa bumps into Fenton in the elevator. She realizes that it is Fenton when Ronnie and her are having a romantic moment. She panics and says she has to get to Donna to warn her. She leaves Ronnie confused and frustrated because he was just about to propose. She runs out of the room and rushes to the stairs. While she is running down the stairs, her heel snaps off and she falls and hits the floor. She sees Fenton at the top of the stairs and runs down the rest of the stairs into a part of the hotel under construction. Lisa walks through the room and sees an elevator. She runs over to it and presses the button. She looks behind her, and Fenton is not there. She turns back around and he is standing in front of her. She screams and falls over, and then Lisa gets up and runs away, closing a door behind her. She hides under a table. Ronnie comes down in the elevator looking for her but she does not yell because Fenton is standing close by with a knife and would kill Ronnie if she did. Ronnie then goes back up and Fenton walks away. Ronnie walks up to Donna and says he can't find Lisa so Donna goes to look for her because Ronnie has to get on stage for the announcement of prom king and queen. Back on the construction floor, Lisa thinks Fenton is gone, so she gets out from under the table and walks towards the elevator. She accidentally knocks over some paint tins which create a lot of noise. She starts to run backwards, and backs right into him and he grabs her and slits her throat, spraying her blood on the plastic covers.
Detective Winn heads up to the room registered to Fenton's victim, Mr. Ramsey. He is in there cleaning the blood off his knife. Winn doesn't find Fenton but he finds the body of the maid in the bathtub. Now knowing for sure that Fenton is in the building, he triggers the emergency alarm to evacuate the building and tells his associate to find Donna and put her in protective custody immediately. Downstairs, the prom king and queen are about to be announced when the alarm goes off. Detective Nash comes in and tells everyone to evacuate the hotel. Chrissy gets angry and snatches the paper from the teacher and sees that Lisa and Ronnie were the prom queen and king.
While everyone is leaving, Winn is looking for Donna, who is in the bathroom looking for Lisa. She comes out and asks what is going on. A guy tells her that they have to go outside. Donna left her mom's shawl in the suite and asks him to tell Bobby that she will meet him outside. Donna goes upstairs to retrieve the shawl. By now the whole hotel is outside. Donna enters the suite looking for Lisa and Claire but no one is there. She goes over to the closet and gets her shawl. While she is there, Fenton is behind her. When she goes to the door, Fenton is there. Donna cries and backs away, falling over a chair. She gets up quickly and runs into the bedroom, locking both doors. She looks through the peephole and sees Fenton. He gets a fire extinguisher and bangs the door with it, trying to get through. Donna screams and goes into the next room. Fenton has busted a hole in the door and enters the room, looking for Donna, who is hiding under the bed. Fenton first goes into the other room. Donna sees Claire's body next to her under the bed.
Outside, Detective Winn is looking for Donna and a guy tells him that she went back to the suite to get the shawl and Winn races upstairs. Back in the suite, Fenton picks up her shawl. He walks back into the bedroom and bends down, looking under the bed that Donna isn't under. Donna gets out and runs out of the room and runs into Winn and Nash. Donna is hysterical, distraught, and crying. She tells them that Fenton is in the suite and Claire is dead under the bed. Winn searches Donna's suite for Fenton but he isn't there. Donna makes it outside safely. Ronnie is outside and asks Donna if she saw Lisa. Donna says no and tells Ronnie that Claire's dead. Nash drives her back to her house with Bobby. Winn and a police team search the hotel for Fenton but he is not there. They find Lisa's body on the construction floor. They tell Ronnie and he is distraught.
Donna gets home and hugs her aunt and tells her that it's all happening again.
Winn finds a hotel employee's body up in the ceiling and realizes that Fenton escaped wearing the hotel employee's uniform. He rushes back to Donna's house to warn her. He calls Nash, who is stationed outside Donna's home, on the way and tells him to get into the house. He sees that the house's phone line has been cut.
Donna goes to the bathroom and takes some pills. She looks behind her and sees that the window is open and shuts it. She goes back to bed. Winn arrives to find Nash dead in his car, throat slashed. In Donna's room, she thanks Bobby for staying. When he doesn't reply, she rolls him over and sees that his throat has been slit. She gasps and gets off the bed. She sees a shadow out in the hallway. Thinking it is Fenton she hides in her closet. She sees that it is actually Winn and is about to come out when Fenton, who had been hiding in the closet, grabs Donna and puts his hand over her mouth to stop her screaming. Winn does not know she is in there. He is about to open the closet but Donna's aunt screams so Winn goes into her room instead. As Fenton is about to leave the closet with Donna, she bites him and runs but Fenton grabs her leg and she falls over. She struggles and kicks him in the face and screams for help. Fenton is about to stab Donna when Winn comes back in and shoots Fenton several times, killing him.