Teenager Kevin Khatchadourian is in prison after committing a massacre at his high school. His mother, Eva, once a successful travel writer, lives alone in a rundown house and works in a travel agency near the prison, where she visits Kevin. She looks back at her memories of him growing up as she tries to cope with the hostility of her neighbors.
Kevin is detached and difficult from childhood. He appears to loathe and deliberately antagonize Eva, and she has trouble bonding with him. As a baby, he cries incessantly, but only around her; as a child, he resists toilet training, rebuffs Eva’s attempts at affection, and shows no interest in anything. He behaves like a happy, loving son when his father Franklin is watching. Eva’s frustration drives her to throw Kevin against the wall, breaking his arm. Kevin tells Franklin he fell, using the incident to manipulate Eva into doing what he wants.
Franklin dismisses Eva’s concerns and makes excuses for Kevin’s behavior. When Kevin is confined to bed with a fever, Eva reads him a book about Robin Hood; when Robin competes in Prince John’s archery contest, Kevin shows Eva affection for the first time. Franklin gives him a bow and arrow and teaches him archery.
Eva and Franklin have a second child, Celia, who is lively and cheerful. However, Kevin is disdainful and jealous. A few years later, Celia’s pet guinea pig is killed and she is blinded in one eye by caustic cleaning fluid. Eva suspects Kevin is to blame, but Franklin defends him. Eva’s suspicion strains the couple’s marriage and they discuss divorce. Eva comes to fear her son, as she sees growing evidence of Kevin’s sadism.
As a teenager, Kevin locks several students in the school gymnasium and murders them with his bow. When Eva arrives home, she finds Kevin has murdered Franklin and Celia. On the second anniversary of the massacre, Eva visits Kevin in prison. Eva asks him why he committed the murders. Kevin, who is about to be transferred to an adult prison, responds that he used to think he knew but is no longer sure. Eva hugs Kevin and walks away sadly.