Charlie (Jim Carrey) è gentile, un gran lavoratore e un papà tenerissimo. Tuttavia, soffre di sdoppiamento della personalità e quando dimentica le medicine ha il sopravvento Frank, il suo alter ego iper-aggressivo. Frank è sboccato, beve e adora fare a botte. Charlie e Frank non hanno niente in comune tra loro se non Irene (Renee Zellweger), una bellissima ragazza di cui entrambi si innamorano.