Karl Childers (Billy Bob Thornton), que é um pouco retardado, passou parte da sua vida num sanatório, pois quando era garoto viu sua mãe fazendo amor com Jesse Dixon, que não conhecia. Karl se descompensou e matou ambos. Só quando adulto foi libertado, pois decidiram que ele não oferecia mais perigo. Perambulando pela cidade Karl faz amizade com um garoto, Frank Wheatley (Lucas Black), o filho de uma viúva, Linda (Natalie Canerday). O administrador do hospício, Jerry Woolridge (James Hampton), consegue um emprego para Karl e, como Linda percebeu que seu filho ficava feliz com a presença dele, concordou que Karl morasse na casa dela. Porém isto desagrada muito Doyle Hargraves (Dwight Yoakam), um bêbado cruel que é o namorado de Linda e se comporta como o dono da casa. Doyle gera uma tensão constante, o que deixa Frank cada vez mais infeliz e faz com que Karl sinta que precisa fazer algo.