凯尔·金森(亚历克斯·帕蒂弗饰)是一位富有且傲慢自负的新闻主播罗布·金斯顿(彼得·克劳斯饰)的儿子,他同样自大而虚荣。在赢得学生会主席选举后,他在庆功派对上欺负了古怪的肯德拉·希尔弗蒂(玛丽-凯特·奥尔森饰),嘲笑她丑陋又奇怪。对此感到厌恶的肯德拉用魔法将凯尔变成一个光头、满身刺青和伤疤的模样,完全失去了他昔日英俊的外表。肯德拉告诉凯尔,他必须在下一个春天之前找到一个真心爱他的人,否则他将永远保持这个样子。罗布将凯尔安置在一间私人公寓中,与女仆佐拉(丽莎·盖伊·汉密尔顿饰)以及凯尔的盲人导师威尔·弗拉塔利(尼尔·帕特里克·哈里斯饰)一起生活。罗布起初承诺支持儿子,但随着时间推移,他逐渐疏远凯尔,最终甚至不再下班后探望他。愤怒又受伤的凯尔从威尔和佐拉那里找到了慰藉。 随着春天的临近,凯尔发现自己迷恋上了林迪·泰勒(凡妮莎·哈金斯饰),一位来自他以前学校的学生。他最初对她和肯德拉一样冷漠疏远。当林迪和她的父亲在街上即将被两名兄弟抢劫时,林迪的父亲开枪击中了其中一人,而幸存的兄弟发誓要报复并取林迪的性命。凯尔救下了林迪和她的父亲,并安排林迪搬来与他同住以确保她的安全。起初,林迪对被迫躲藏感到愤怒,因为她原本计划去马丘比丘进行实地考察旅行。然而,当凯尔向她展示自己如今的样貌(此时他自称“亨特”)后,林迪表示自己见过更糟糕的情况,两人逐渐熟络起来。凯尔写了一封信向林迪表白自己的爱意,但他从未打算将信交给她,因为他害怕林迪不会回应同样的感情。威尔和佐拉继续帮助凯尔赢得林迪的心,而两人也渐渐坠入爱河。随着时间的推移,凯尔通过与林迪一起朗读弗兰克·奥哈拉的诗《与你喝可乐》彻底赢得了她的心。接近春天时,凯尔与肯德拉达成协议:如果他成功赢得林迪的爱,肯德拉将恢复威尔的视力,并为佐拉在牙买加的三个孩子获得绿卡。 林迪收到一条短信,得知威胁她生命的罪犯已被关进监狱。她和凯尔在一个湖边的罗布私人小屋度过了一下午。就在他们即将接吻时,林迪接到电话,得知父亲因服药过量被送往医院。她赶往医院,在离开前告诉凯尔他是一个好朋友,这让凯尔后悔将信交给她。心碎的凯尔在林迪读了他的信后没有接听她的电话。在威尔和佐拉的鼓励下,凯尔决定在林迪前往马丘比丘之前最后一次见她,解释说自己之所以不接电话是因为他认为林迪只把他当作朋友。林迪向他表白了自己的爱意,随后启程前往马丘比丘。凯尔在外貌恢复到正常、英俊的状态后,肯德拉的咒语也随之解除,但林迪决定不去马丘比丘,并试图再次寻找“亨特”。她在寻找亨特的过程中一度忽视了凯尔,直到她拨打亨特的电话时凯尔的手机响起,这才意识到亨特就是凯尔。两人在街头深情拥吻。 一天早晨,威尔醒来发现自己重获视力,欣喜若狂。佐拉则在邮件中发现了政府寄来的三张绿卡,为她的孩子们提供了公民身份。与此同时,肯德拉以实习生的身份出现在罗布·金斯顿的办公室,暗示她可能会对罗布施加与凯尔相同的惩罚。在片尾字幕中,一系列照片显示凯尔和林迪一起环游世界,包括去了马丘比丘。