The powerful superhero John Hancock(Will Smith) has become a joke because of his alcoholism and clumsiness. He has also become the most hated man in Los Angeles. Though he has saved many lives, he also destroyed a lot of property, costing the city millions every time he goes into action. When he saves the life of PR expert Ray Embrey(Jason Bateman) from an oncoming train, the executive is thankful and believes he can restore Hancock's image as a true superhero. He brings the anti-hero home for dinner and introduces him to his son Aaron(Jae Head), a big fan, and to his wife, Mary(Charlize Theron). But for some mysterious reason Mary doesn't want Hancock anywhere near her or her family.