Riley (Laura Bilgeri) is a high school senior starting her first day at a new school along with her father, Chris (Rusty Joiner), the school's newest English teacher. During his first lesson, Chris catches the attention of both Tricia (Ally Deberry), a popular girl, and Kyla (Lucy Loken), the school's yearbook photographer. After class, Kyla befriends Riley, who reveals she is Chris' daughter, and asks to come over to her house for a study session. At her house, Riley tells Kyla about her mother's infidelity which led to her parents' divorce. That night, Kyla dreams of Chris and becomes infatuated with him.
The next day, Tricia befriends Riley, infuriating Kyla. She warns Riley that Tricia is dangerous and claims she has a history of messing around with teachers, as she had slept with a history teacher the prior year. Later that night, Kyla's mother, Jess (Jana Lee Hamblin), is preparing for a date, which is revealed to be Chris. As she watches them flirt, Kyla grows jealous and sabotages their date, forcing Chris to spend the night, and allowing Kyla to get closer to him.
The following morning at school, Kyla confronts Riley about going out with Tricia despite her warning, and tells her she's being used by Tricia to get to her father. Riley tells her that Tricia claims it wasn't her who had slept with their history teacher, but Kyla herself. Kyla denies the accusation and Riley leaves. Later, Kyla confronts Tricia, threatening her to leave Riley alone, but Tricia refuses to back down.
The next day, Kyla, having filled her locker with lewd photos she had taken of herself the night before, tells Chris she is being harassed, and he promises to help find whoever is responsible. Kyla and Riley eventually make amends, and Kyla confesses to having slept with her history teacher, claiming he had manipulated her.
Later that night as Chris and Jess prepare for a date, Kyla, posing as Tricia, sends sexually suggestive messages to Chris's phone. Jess, believing Chris is having sex with one of his student, throws him out. As Chris sits in his truck, Kyla enters and seduces him into kissing her. The following day, police arrive and take Tricia away, having found the phone used to text Chris the sexually suggestive messages, as well as containing the lewd photos of Kyla, in her locker.
That night at Riley's birthday party, Kyla enters Chris' office at his home and finally seduces him into having sex with her. Riley discovers them, and runs away distraught. The next morning Jess confronts Chris, having been told everything by Riley. As she takes Kyla away, Kyla denies any wrongdoing, as she is of legal age and claims Chris and her are in love. Chris apologizes to Riley and tells her he will not see Kyla anymore, and Riley forgives him.
The next day, Kyla calls Tricia and asks to meet her before school. When Tricia arrives, Kyla admits to framing her, and harms herself by breaking her fingers. As Riley and Chris arrive, Kyla cries for help, claiming Tricia attacked her. Tricia is arrested and Kyla goes to the hospital. There, Riley tells Kyla her relationship with her father is over, and Kyla appears to agree. She asks Riley to take over her yearbook responsibilities for a basketball game that night, which Riley reluctantly accepts. When Riley leaves, Kyla tells Chris they can finally be together with Tricia gone, but Chris denies her, telling her their relationship is over and to leave him alone. Kyla declares she will never leave Chris, and reminds him he will have to see her everyday in class. Chris decides to quit his job to get away from her, and leaves to gather his belongings from the classroom. Kyla takes a scalpel from the hospital and flees.
At school that evening, Kyla confronts Riley, declaring only one of them can be in Chris' life, and stabs her in the stomach. Making her way to Chris' class, she holds the scalpel to his throat, telling him they are meant to be together, and also revealing she was the one that had manipulated her previous teacher, not vice versa. Chris pushes Kyla off him, but she trips him, causing him to hit his head, rendering him unconscious. A janitor hears the commotion, and stumbles upon Kyla, who pretends to be injured and asks him to get help. As the janitor runs to find assistance, Riley, alive but badly wounded, warns him to run, but Kyla stabs and kills him. The two begin to fight, and Riley eventually beats Kyla into submission. As police arrive, both Riley and Kyla are taken away in separate ambulances.
Some time later, Riley is leaving for her first day of college. As she says goodbye to her father, unseen by either of them, a hooded figure watches them from afar.