慈善活動「オールハート」のプレゼンに失敗し、落胆していたレイ・エンブリー（ジェイソン・ベイトマン）はその帰路、列車に轢かれかけた所をハンコックに救われ、ハンコックのためにヒーローになるためのイメージ戦略を持ちかける。
失意的汉考克终日酗酒，于街头流离浪荡，在一次偶然的机会中，他救了公关顾问雷·恩布里（杰森·贝特曼饰），雷为了感谢汉考克的救命之恩，决定帮汉考克重新建立形象，以公关策略配合宣传攻势，让他的声名来个谷底反弹。