Charlie Baileygates (Jim Carrey) is a veteran Rhode Island state trooper who has been taken advantage of by those around him, including his wife Layla (Traylor Howard). Almost immediately after their wedding, Layla begins to cheat on Charlie with their wedding limo chauffeur, a dwarf black man named Shonté. Despite his friends warning him of Layla’s infidelity, Charlie refuses to accept it, even after she gave birth to black triplets. A few years later, Layla leaves with Shonté, abandoning her children. Charlie raises the triplets: Jamal, Lee Harvey, and Shonté Jr. (Anthony Anderson, Jerod Mixon, Mongo Brownlee). While Charlie is loved by the boys, he is continually abused by the rest of the town. As a result of years of such treatment, Charlie develops a split personality named Hank to deal with the confrontations Charlie avoids. Emerging whenever Charlie is under extreme stress, Hank is an over-the-top, rude, and violent persona reminiscent of characters played by Clint Eastwood. A psychiatrist prescribes medication to keep Hank at bay.
Believing that Charlie needs a vacation, his commanding officer (Robert Forster) orders him to escort Irene Waters (Renée Zellweger) from Rhode Island to Massena, New York, because she reportedly committed a hit-and-run. Irene insists the accusation is a lie told by Dickie (Daniel Greene), her mob-connected ex-boyfriend, to keep her from revealing his illegal activities to the authorities. In Massena, Charlie turns over Irene to two EPA agents. A hitman with a contract on Irene’s life kills one of the agents. Irene and Charlie flee, leaving his medication behind in their haste and allowing Hank to emerge frequently. Charlie is unjustly blamed for the murder. FBI agents begin pursuing him and Irene, as do two crooked police officers in Dickie’s pay, Boshane (Richard Jenkins) and Gerke (Chris Cooper). The chase becomes a media spectacle, alerting Charlie’s sons to his predicament.
Charlie and Irene return to Rhode Island, developing a bond along the way. Though Irene is taken by Charlie’s personality, Hank’s worries her, as his aggressive personality and overestimation of his own toughness often gets them into trouble. Along the way they pick up “Whitey” (Michael Bowman), an albino waiter who claims to have killed his entire family. While stopping at a motel, Hank convinces Irene to have sex with him by impersonating Charlie. When Charlie realizes what happened the next morning, he is incensed and begins fighting with Hank. They are almost ambushed by Boshane and Gerke, but Charlie’s sons, having found them, steal a police helicopter and call in a false report, stating Charlie and Irene have been spotted in the woods nearby.
Charlie and Irene leave Whitey at the motel and board a train back to Rhode Island. Dickie boards the same train, having been ordered by his superiors to “get his hands dirty”. He kidnaps Irene, and Charlie gives chase, working together with Hank to save her. Hank balks when Dickie heads onto a bridge, but Charlie finally stands up for himself against his fears, thus permanently nullifying Hank. As Charlie tries to disarm Dickie, Dickie shoots off his thumb. Dickie is then hit from behind by a lawn dart thrown by Whitey, killing him. Charlie and Irene fall from the bridge into a river below. Charlie’s sons arrive to rescue them. Regrouping with Whitey, Charlie apologizes for making him kill again, but Whitey reveals he made up his backstory for fear of Hank. The police arrive, but quickly learn of Irene’s plight. Gerke is arrested, Charlie is congratulated for bringing him to justice, and Irene is cleared of the charges against her.
Irene prepares to leave Rhode Island when she is pulled over by the police, but this proves only to be a diversion to allow Charlie to propose marriage to her, which she happily accepts. In a post-credits scene, everyone looks for Charlie’s thumb in the river. Whitey finds it, but a fish eats it.