Karl Childers (Billy Bob Thornton), que é um pouco retardado, passou parte de sua vida em um sanatório, porque quando ele era pequeno, viu sua mãe fazendo sexo com Jesse Dixon, que ele não conhecia. Karl desmaiou e morreu. Foi só quando ele foi solto como adulto que ele decidiu que não estava mais em perigo. Vagando pela cidade, Karl faz amizade com uma criança, Frank Wheatley (Lucas Black), filho de uma viúva, Linda (Natalie Canerday). O administrador do hospício, Jerry Woolridge (James Hampton), conseguiu um emprego para Karl e, quando Linda percebeu que seu filho estava feliz com sua presença, ela concordou em ter Karl morar com ela. No entanto, ele não gosta de Doyle Hargraves (Dwight Yoakam), um bêbado cruel que é namorado de Linda e se comporta como o dono da casa, Doyle gera tensão constante, o que faz Frank se sentir cada vez mais infeliz e faz Karl sentir que tem que fazer algo.