Vanessa Lutz (Reese Witherspoon) is a tough-minded, Deep South-accented, uneducated, illiterate 15-year-old who lives in a poor neighborhood ghetto in Los Angeles. She's currently living in a run-down motel room and being raised by her neglectful, drug-addicted mother, Ramona (Amanda Plummer), who supports them by collecting welfare and working as a prostitute. Ramona's current boyfriend, Larry (Michael T. Weiss) spends his days getting high by smoking crack and sexually abusing Vanessa. When the police bust Ramona for hooking on a nearby corner, they take Larry and Ramona away to prison and leave Vanessa with foster care as an option. When her social worker comes to take her away, Vanessa handcuffs her to a bed and makes off with her car. Before leaving the neighborhood, Vanessa stops to talk to her boyfriend Chopper (Bokeem Woodbine) to tell him that she is leaving town to search for the only family member she knows of, a distant grandmother who lives in Northern California and who doesn't even know Vanessa exists. Chopper gives Vanessa his gun and tells her to pawn it for cash. As soon as Vanessa drives off and is out of sight, thugs drive by and shoot the now-defenseless Chopper dead.
The stolen car that Vanessa is driving breaks down on the local Interstate (I-5) freeway just outside Los Angeles, and a man in an SUV pulls over to help her. He identifies himself as Bob Wolverton (Kiefer Sutherland), and tells Vanessa that the car is not driveable anymore. He offers to give Vanessa a ride with him, and she goes with him in his vehicle.
After driving a while, Bob gets Vanessa to open up to him and tell him about her life, and she tells him about her broken home, her mother's drug abuse and prostitution, the violence and abuse that she has encountered in various foster homes, and the sexual abusiveness of Larry. At one point, Vanessa shows Bob a photo she keeps in her wallet of her biological father. (The photo used is actually a picture of mass murderer Richard Speck.)
After buying her dinner at a roadside restaurant, and pretending to engage her in a theraputic session during the drive, Bob reveals himself to be a notorious serial killer, known by the press as the "I-5 Killer" who has been haunting the freeway and killing innocent young women who walk along it.
Vanessa is afraid, but she also becomes infuriated at him for violating the trust she put in him by telling him her life story, and Bob finds that she is not easily intimidated. Furthermore, Vanessa easily identifies the hypocrisy that Bob reveals when he identifies Vanessa and his other victims as "garbage people". "You act like you're on some kind of mission," she tells him, "but you really just wanna get off in a sex type way." The fact that Vanessa is so logical and intelligent, despite her limited vocabulary and background, enrages Bob, especially when Vanessa is more disgusted than afraid when he reveals that he wants to perform sex acts on her body after he kills her.
Using her quick wit, she is able to attack Bob and turn the tables on him by diving into the back seat and retrieving Chopper's gun. She forces Bob at gunpoint to pull off of the freeway into a desolate area, where she explains that Bob has proved to her that he is rotten and will only continue to murder women if she does not stop him. Vanessa shoots Bob in the face, and is horrified when she must pull the trigger over and over in order to kill him. When she thinks he is finally dead, she takes his wallet and walks to a nearby diner, where the blood all over her clothes alerts everybody that something is wrong. She is easily apprehended minutes later by the police, who take her into custody. Meanwhile, Bob, who is not dead after all, manages to get to a hospital and get help for his injuries.
At a local police station, Vanessa is questioned by two policemen, Mike Breer (Wolfgang Bodison) and Garnet Wallace (Dan Hedaya). At first, Vanessa is cooperative and freely admits to shooting Bob, but she is dismayed to learn that she did not kill him. Although she tells the policemen that Bob is the I-5 Killer, they do not believe her. After making a background check on Vanessa, they discover her long criminal record for a variety of crimes from shoplifting, to arson, and assault and battery, while they tell her that Bob Wolverton is a well known and respected citizen with no criminal record or any history of violence at all. Furthermore, when Breer aggressively questions her, Vanessa reveals a violent temper and she attacks him physically while hurling racial insults at him.
At her arraignment, Vanessa refuses to show remorse for her actions, insisting to the judge and prosecutor that Bob is the I-5 Killer (which falls on deaf ears), and when she sees how badly she has wounded Bob, who is now deformed, she reacts with laughter and fury over what he tried to do to her. The judge orders Vanessa to a juvenile detention center until she can be evaluated for her ability to be tried as an adult.
While in the detention center, Vanessa meets a sympathetic drug-addicted teen girl named Rhonda (Brittany Murphy), who befriends Vanessa and tries to get her to make out with her. Vanessa agrees, but insists that she will not have sex with Rhonda, "Cause I'm straight." Another girl, a tough Latina named Mesquita (Alanna Ubach), tries to bully Vanessa. Before she can even threaten her, Vanessa attacks Mesquita and bloodies her badly, forcing the matrons to lock her in solitary confinement. While there, she makes a shiv out of a toothbrush to protect herself, and plots her escape.
Days later, Vanessa's guards in the detention center write a report recommending that Vanessa be tried as an adult, as her chances for rehabilitation seem to be nil. Meanwhile, Bob and his straight-laced wife, Mimi (Brooke Shields), are hailed by the media as "heroes" for persevering after Vanessa's attack. Detective Breer begins to change his opinion of Vanessa after he and Wallace interview Vanessa's peers and learn of how highly she was regarded. Breer especially is suprised to learn that Vanessa's deseased boyfriend, Chopper, was black, which changes his perspective regarding the racist remarks that Vanessa made to him in her moment of anger. He returns to the crime scene and finds overlooked evidence that indicates Vanessa's story may actually be true.
While Vanessa, Mesquita, and two other twin girls are being transferred in a van to the state prison, Vanessa and Mesquita escape by launching a violent attack on the guards using Vanessa's shiv, killing one, maming another, and making off with the van. Mesquita takes Vanessa into her care and gets her a fake ID, clothes, and a gun when they reunite with Mesquita's boyfriend. She and Vanessa share a moment of bonding, and Mesquita tells Vanessa that she only tried to intimidate her so that Vanessa would "put out for her." They laugh, and Vanessa tells Mesquita that she'd put out for her any day. With that, Vanessa and Mesquita go their seperate ways.
Meanwhile, Wallace and Breer obtain a search warrant and invade Wolverton's home to search for evidence. When they unlock a small shed in back of the house, they discover all sorts of lurid items, including a large stash of child pornography and various trophies from his victims. Mimi then realizes that her husband really is a serial killer, and she suddenly commits suicide in response. Bob returns home and sees his house surrounded by police cars, so he quickly drives off to avoid capture. (In his earlier encounter with Vanessa, he had apparently obtained a photo of the grandmother, with her address written on the back.)
Vanessa uses the clothes that Mesquita gave her to pose as a prostitute, luring a john into a secluded area and then robbing him at gunpoint. After forcing him into his car trunk, Vanessa drives off in the man's car to where her grandmother lives. At the same time, Wallace and Breer figure out where she is going and hope to intercept her before Bob can get to her.
When Vanessa arrives at her grandmother's home, which is actually a trailer in a run-down trailer park (lacking the wicker basket that she had with her earlier in the story), she finds that Bob has killed her and is hiding in her bed while dressed as her. After a vicious struggle, Vanessa kills Wolverton by strangling him to death. Detectives Wallace and Breer arrive too late to stop the confrontation. They eventually enter the trailer to find Wolverton and Vanessa's grandmother both dead, and an exhausted and emotionally broken Vanessa is beside herself who puts up her hands and surrenders to the two detectives. However, the detectives appear to exonerate Vanessa when they both begin laughing, and Vanessa follows suit. Vanessa asks the officers: "Y'all got a cigarette?"