Jennifer Stanton (Melissa Joan Hart) is a teenager who constantly fights with her parents, arguing over their strictness. Her father William (Daniel Baldwin) disapproves of her clothes and friends, which has impact on her relationship with Brad (David Lascher), the captain of the high school football team. He decides to break up with her, explaining they can never go out because of her father. She next starts going out with Nick Jordan (Jeremy Jordan), who is infamous in his neighborhood for having spent time in jail. While her parents are a weekend away, they start dating. Her parents decide to return early and she is caught in bed with Nick. William responds furious and sends her to her room with a black eye. She claims she loves Nick and decides to see him secretly. He notices her black eye and is determined to convince her father to let her stay with him. Back at home, she is caught by her mother, who tells her she is done protecting her or taking her side.
Nick later stops at Jennifer's house, warning William not to treat her that bad any longer. William, surprised he is warned, threatens to sue him for statutory rape. When his car turns out to be vandalized the next day, William contacts the police and Nick is soon questioned. He, however, claims he didn't have anything to do with it. Jennifer overhears her father saying he is determined to get Nick behind bars. Fearing her father, she tells Nick they can't sneak around any longer. She convinces him to use his grandfather's pistol to shoot and kill William. While he is planning the murder, she goes back to her normal life, claiming to everyone that she broke up with him. On the night of the murder, Nick changes his mind, but Jennifer pushes him to go through with it.
After the killing, Jennifer is sent to live with her grandparents and the police presume the murder was attached to a robbery. Nick becomes the prime suspect and is constantly harassed by the police. She rekindles her relationship with Brad and rats out Nick to the police, giving the police an anonymous call, informing them about the whereabouts of the gun used in the killing. The police think, with Nick in their arrest, the case is now closed, but Detective Daniels (Eric Laneuville) suspects that Jennifer has something to do with it. Upon confronting her, she claims that Nick was mad at her parents for not letting him see her, thereby giving a reason only he would be involved with the murder. Meanwhile, Jennifer's best friend Karen (Meadow Sisto) finds her diary, in which she admits the murder and manipulation.
She decides to visit Nick in jail, trying to convince him that she set him up. He later talks to Jennifer about it, but she gets mad at him, blaming him entirely for the murder. Upset, he admits to the police that he killed her parents, but that it was Jennifer's idea. Not much later, the police claims her diary, but she has rewritten it in the meanwhile, preventing an arrest. Frustrated about the injustice, Karen sneaks into Jennifer's house to collect evidence, but she is almost caught. Meanwhile, a trial against Nick has started. Jennifer gives a false testimony, claiming that Nick harassed her. Karen is determined to stop her, but Jennifer threatens to give false proof that she was involved with the murder to if she interferes. Eventually, Brad manipulates her into admitting that she is responsible for the murder. Having recorded their conversation, she is soon arrested for murder. In the end, it is announced that she was tried as a juvenile and therefore only has to spend time in jail until age 21.