Hank Grotowski (Billy Bob Thornton), a widower, and his son, Sonny (Heath Ledger), are corrections officers in the local prison. They reside in Louisiana with Hank's ailing father, Buck (Peter Boyle), an unwavering racist whose wife committed suicide. Hank's hateful attitude toward others, strongly influenced by his father, extends to his son, and members of the neighboring community.
As Hank and Sonny assist in the execution of convicted murderer Lawrence Musgrove (Sean Combs), the proceedings prove too intense for Sonny, who collapses and then begins to vomit as he is leading Lawrence to the electric chair. Hank beats up Sonny in the jail's bathroom afterwards for being so "soft". Some time later, Hank drags Sonny out of bed and tells him to get out of the house. Unable to cope with the estrangement, Sonny grabs a gun. The confrontation ends in their living room with Hank at gunpoint, lying on the carpet, and Sonny in Buck's customary chair. Sonny asks his father, "You hate me, don't you?" After his father calmly confirms that he does and always has, Sonny responds, "Well, I always loved you," and then shoots himself in the heart. Hank subsequently buries Sonny in the back garden, quits his job at the prison, burns his uniform in the backyard, and locks the door of Sonny's room up tightly. Buck calls him a quitter.