Jack Slavin (Daniel Day-Lewis), a Scottish farmer with a heart ailment, lives with his teenage daughter on an isolated island formerly occupied by a hippie commune, where he is struggling to keep landowners from building developments on the wetland. Daughter Rose (Camilla Belle) is a beautiful but isolated young woman with a passion for gardening. Since Rose's mother left them, Jack has homeschooled her and did not expose her to life beyond their island home.
While Rose has no desire to change their lifestyle, Jack believes that they both "need a woman around." He travels to the mainland to ask his girlfriend Kathleen (Catherine Keener) to move in with him, along with her two sons. When she agrees and they show up, Jack breaks the news to a shocked Rose, who remains stoic and disdainful and from whom he had kept his relationship with Kathleen a secret.
Kathleen struggles to adapt to the Slavins' rural lifestyle. Her sons Rodney (Ryan McDonald) and Thaddius (Paul Dano) are almost polar opposites: Thaddius is a sullen, rude delinquent, while Rodney is insecure and often overlooked. While she has a strained relationship with Kathleen, Rose develops unlikely bonds with her new "stepbrothers": Thaddius is attracted to her, but Rose does not like him. One night, after Rose spies on Jack and Kathleen in bed together, she decides to lose her virginity, and shocks Rodney by confronting him topless and asking him for sex. Rodney refuses, instead persuading her to let him give her a dramatic haircut, after which Rose calmly takes her father's shotgun and mis/fires it into Jack and Kathleen's bedroom as they sleep. A shocked Jack confronts Rose in disbelief, but the two end up giggling and seem to forget the event within minutes.
Kathleen asks Jack about his relationship with his daughter, suggesting that Rose might have psychological problems that should be dealt with, which Jack denies. Meanwhile, Rose becomes friends with Rodney, the target of his mother's criticism for his being overweight. While the two fight constantly about his eating, Rose sees only Rodney's kindness and intelligence. However, still on a mission to lose her virginity, Rose's thoughts turn to Thaddius.
While trapping a copperhead with which she intends to frighten Kathleen, Rose spies Thaddius and Red Berry, a visiting friend of Rodney's, having sex in the woods. Later that night, Thaddius enters Rose's room as she lies in bed. Though she dislikes him, she allows Thaddius to have sex with her, even offering a timid "thanks" afterwards.
To irk her father, Rose hangs her bloodied bedsheet on the clothesline. Furious that his daughter has been "ruined", Jack gives Thaddius one day to leave. Meanwhile, Kathleen is cornered by the copperhead, which has escaped its cage in Rose's room, the resulting chaos putting the entire household on edge.
That night, Rose holds a screening in her treehouse of a home movie about the hippie commune of which her dad had been a member. As the film rolls, Thaddius advances on Rose and is stopped by Jack. After a scuffle, Thadduis falls from the treehouse and is rushed to the hospital. Rose runs away to an unfinished development house where she hides out. Jack finally finds her, and offers to ask Kathleen to leave if it will bring Rose home. A distraught Kathleen demands $20,000 in exchange for leaving, which Jack pays.
Jack returns to Rose's hideout, where she is overjoyed with his news that Kathleen is gone. That night, they share an incestuous kiss, with which Rose sees nothing wrong, but which causes Jack to break down in guilty tears.
Jack's heart condition is worsening, and he gives up his struggle against the builders destroying the wetlands. He and Rose return home, where he dies within a few days. While Rose had originally planned to kill herself when her father died, after setting the house on fire and lying down next to Jack's body, she changes her mind and leaves the island.
Two years later, we see Rose living in a commune, where she works in a greenhouse.