During her 18th birthday, India Stoker's (Mia Wasikowska) life is turned upside down after her loving father Richard (Dermot Mulroney) dies in a horrific car accident. India is then left with her estranged unstable mother Evelyn (Nicole Kidman). At Richard's funeral, Evelyn and India are introduced to Richard's charming and charismatic brother Charlie (Matthew Goode), who has spent his life traveling the world. He then announces that he is staying indefinitely to help support India and Evelyn, much to Evelyn's delight and India's chagrin.
Shortly after Charlie moves in, India witnesses him argue with Mrs. McGarrick (Phyllis Somerville), the head caretaker of the house. Mrs. McGarrick then disappears and is never seen again. Charlie and Evelyn grow closer and intimate while India continues to rebuff Charlie's attempts to befriend her. Later, India's great aunt Gwendolyn (Jacki Weaver) arrives to visit the family, much to Evelyn and Charlie's dismay. At dinner, Gwendolyn grows suspicious of Charlie's claims of traveling the world and tells Evelyn that she needs to talk to her about Charlie.
Later that night, Gwendolyn changes hotels due to an unexplained fear and suspicion of Charlie. However, she loses her cell phone and tries to call the Stoker home from her hotel payphone. While making her call, Charlie tracks her down and corners her in the phone booth, seeming to be upset. He hands Gwendolyn her phone and then strangles her to death with his belt after explaining that he found her through the cab company. Meanwhile, India goes into the basement to eat ice cream and discovers Mrs. McGarrick's body in the freezer. We realise that Charlie murdered her as well.
After India discovers that Charlie is a killer, she unleashes her inner aggression at school and stabs a bully, Chris Pitts (Lucas Till), in the hand with a pencil after he makes sexually derogatory remarks at her about Evelyn. This draws the attention of another classmate, Whip Taylor (Alden Ehrenreich). India goes home and later witnesses Evelyn and Charlie growing intimate and wanders off to a local diner where she runs into Whip. She and Whip go into the woods where they proceed to make out until India aggressively bites Whip. Whip then attempts to rape India until Charlie intervenes, and breaks Whip's neck with his belt. India then aids Charlie in burying the body in her garden. She then attempts to call Gwendolyn, but hears her phone ring deep in the garden, realizing Charlie killed her, too. India takes a shower and experiences a sexual awakening, masturbating to the memory of the murder, climaxing as she remembers Charlie breaking Whip's neck.
Later, India goes through Richard's office to gather things of his she wants to keep. She discovers that a key she received as a birthday present belongs to a locked drawer to Richard's desk. Inside, she finds several letters from Charlie, which detail his travels. However, India discovers that the letters are all lies after finding the sending address on the back of the envelopes is a mental institution. India then confronts Charlie who explains the truth: Charlie murdered his and Richard's younger brother Jonathan as a child because he was jealous that Richard paid more attention to him over Charlie. Charlie was then locked in a mental institution for several years. When released on India's 18th birthday, Richard gave Charlie a car, a generous amount of money, and an apartment in New York to cut off ties with him and prevent him from meeting India. Feeling hurt and betrayed, Charlie beat Richard to death with a rock and staged the car accident.
At first, India is in shock and angered. However, she seemingly forgives Charlie and grows closer after he provides an alibi for India when Sheriff Howard (Ralph Brown) questions her about Whip's disappearance. They grow close to intimate before Evelyn witnesses them. Later that evening, Evelyn coldly expresses her desires to watch India suffer before confronting Charlie about how she knows the truth about him. Charlie seduces Evelyn and then attempts to strangle her before India appears and fatally shoots Charlie in the neck with a hunting rifle. She then buries Charlie's body in the backyard and proceeds to leave for New York in his car.
She is shortly pulled over for speeding by Sheriff Howard, who then asks her why she's in a hurry. India replies that she wanted to catch his attention, then plunges a pair of garden shears into his neck. India pursues the wounded sheriff into a field to dispatch him with her rifle