Heaven Leigh Casteel is a fourteen year old girl living in poverty with her rather large and discontented family, in a shack in the hills of West Virginia. Her father, Luke, is still haunted by the memory of his first wife who died giving birth to Heaven. Luke is rarely home and his wife, Sarah, struggles to take care of the children. His unhappy marriage leads Luke to spend time in a local brothel, where he eventually contracts syphilis, causing Sarah's next child to be born dead. Heaven's grandmother passes away the same day, possibly from the shock of seeing the stillborn baby. Sarah, long since unhappy with her life, runs away leaving the children to fend for themselves and steal food. During this time, Heaven begins to develop a relationship with a local boy, Logan Stonewall, whose father owns the local pharmacy. Logan offers to help them, but Heaven is too proud to admit that they are struggling.
Whenever things look bleak, Luke shows up with food to save the day, however his attempts to make money fail, and eventually, he comes up with a plan to sell his children for $500 apiece. Heaven is sold to a couple named Kitty and Cal Dennison. Kitty is controlling, obsessed with cleanliness, and seems to hate Heaven, who she treats as a maid. Kitty's husband Cal suffers from constantly being sexually teased and tormented by his wife. Kitty sometimes becomes violent and beats Heaven. Her cruelty is later revealed to be caused by the fact that Kitty once was in love with Luke and almost had his child. She attempted to give herself an abortion, and lost her ability to have children. Because of this, Kitty sees Heaven both as a release for her anger towards Luke, and as the daughter she was never able to have, causing Kitty to have almost split personalities.
Having only each other to find comfort in, Cal and Heaven develop a close relationship, which ultimately leads to Cal's pursuit of sex with Heaven. Eventually giving in, Heaven is overcome by guilt, but is unable to stop. Kitty becomes sick (later revealed to be breast cancer) and the three go back to Kitty and Heaven's hometown to seek aid from Kitty's family. There Heaven is reunited with Tom, Fanny, and her childhood sweetheart, Logan. Things turn for the worst when Heaven, overcome by guilt, tells Logan about her affair with Cal and he runs from her, unwilling to hear her story. Shortly after this Luke visits Kitty looking for Heaven and presents Heaven with two options; live with him and his new wife, or seek out her mother's family. Unable to forgive her father, Heaven seeks out her mother's family. After Cal drops her off at the airport, Heaven learns of Kitty's death and realizes that Cal abandoned her and she is truly on her own. All she can do now is hope she finds peace and love with her mother's family.