Bernie (Jack Black) is a talented mortician working in a small Texas town. Bernie is liked among the community and is especially popular with the older women. He begins a friendship with a wealthy widow named Majorie Nugent (Shirley MacLaine) who is genuinely disliked because of her sour attitude and nasty disposition. Bernie eventually wins Majorie over and he becomes her constant companion and employee, getting himself involved with all of her affairs.
Soon Majorie becomes abusive and possessive towards Bernie and not allowing him to have a life outside of hers. This becomes too much for the delicate Bernie and he kills Majorie by shooting her in the back four times and storing her body in the freezer.
For several months, Bernie is able to cover Majorie's disappearance by creating a story about her having a stroke and not wanting any visitors. Because it is Bernie, everybody believes his story with the exception of her stockbroker, Lloyd (Richard Robichaux) and DA Danny Buck (Matthew McConaughey). Lloyd is able to get a police order and he, detectives and Majorie's estranged family search the house and discover the body.
Danny, a fierce prosecutor, is able to make credible evidence that the townsfolk should send Bernie away for life because he was only wanting to satisfy his materialistic lifestyle and acted in a cowardly manner. Even though Bernie is well loved and nobody wants to think ill of him, the jury does convict him and he sentenced to life in prison with the eligibility for parole when he is eighty-nine years old.
Bernie makes the best of the situation and finds fulfillment in becoming involved in actives in the prison. Although he regrets his actions, he accepts his punishment.