名为葛朵的女巫目睹纯净的阳光滴下坠落地面,生出一朵神奇的金色花朵,为它歌唱就能让自己恢复年轻,保持容颜不老,所以她独占了金花几个世纪。几世纪后,邻近王国的王后怀孕了,但她病了,病得很严重。国王便下令寻找传说中的金色花朵,在无人的悬崖处,守卫找到了它,王后喝下花朵烹煮的汤,神奇般治愈,并顺利生下一名金发女婴长发公主(乐佩)。女巫葛朵得知金花被王后喝下,夜探王宫,找到长发公主,对着熟睡的公主唱起歌谣,公主的头发发出耀眼的金光,葛朵又恢复年轻,但同时发现剪下来的头发魔力会消失,变成棕发,所以她带走女婴,闭关在密林深处的高塔与世隔绝,像母亲一样抚养他。每年长发公主的生日,王国发送成千上万的天灯在天空,期望有朝一日能引导失踪的公主回国。
十八年后,长发公主与她的变色龙宠物帕斯卡住在高塔。长发公主要求葛朵让她去 看在每年生日远方漂浮的星光,但葛朵始终拒绝了她的请求,说世界充满贪图她魔力的坏人。同时,梦想拥有一座城堡的窃贼弗林·莱德和两个同伙偷取了王国城堡里的王冠后逃向树林中。在逃跑过程中费林背叛他的同伙,同时也为甩掉王国守卫和落单的守卫长的白马坐骑马克西姆斯的紧追不舍,误入树帘,发现高塔,在好奇心的驱使下,弗林爬上了高塔。守卫长的白马坐骑马克西姆斯仍继续搜索费林的下落。弗林一进入高塔,就被长发公主用平底锅打晕,然后把他藏匿在衣柜里并将王冠藏了起来。长发公主认为自己有能力对付坏蛋,向母亲证明他可外出,依然被否决了。她失落地告诉葛朵想要一个特殊颜料作生日礼物,寻找这种颜料需要数天,长发公主想以此拖延时间,条件是不再提离塔的事,葛朵答应了。
葛朵离开后,长发公主趁机放出弗林,提出交换条件,如果弗林带她去看那些天灯,回来就把皇冠还给弗林,弗林同意了,和她一起离开了高塔,虽然长发公主很高兴获得自由,但与母亲失约的罪恶感又使她内心产生矛盾冲突。葛朵在回塔的路上,看见皇家守卫队在四处搜捕,葛朵见况不妙提早回到高塔,发现长发公主不在了,却找到了长发公主藏起来的王冠。预感不妙,离开高塔,找寻长发公主的下落。途中,两人进入小鸭子酒馆,里头全部都窝藏葛朵曾警告长发公主的恶棍们,只不过他们并非想像中的坏,恶棍们都有各自的梦想,就和长发公主一样。但追兵、坏蛋兄弟和葛朵全都追到此地,小酒馆恶棍们帮助两人摆脱守卫,他们最终在一个人造大坝进行追逐战,在打斗时无意中导致水坝溃堤。洪水将两人困在一个黑暗山洞,并尝试逃出去,在无能为力时,两人袒露心迹,弗林说出他的真名是尤金·费兹赫伯特,长发公主说出唱歌会让头发发光的秘密,说完之后,长发公主恍然大悟,最后两人借着长发公主那一头会发光的头发找到了出路。长发公主对弗林渐渐产生了好感。
葛朵在找寻长发公主的路上遇见被弗林背叛的两个同伙,提出诱人的条件,让两个同伙同他合作。葛朵设计趁费林离开时,捉走长发公主并告诉她费林只想要皇冠,感情是骗人的,并让长发公主将王冠交给弗林,以此挑拨二人。隔日,白马马克西姆斯追到弗林,但聪明的长发公主化干戈为玉帛,两人和白马结为了好友,并一起抵达王国里游玩。晚上万众天灯漂浮天际,长发公主给弗林皇冠,但弗林意识到长发公主才是他真心想要的。弗林的两个同伙出现了,弗林决定将皇冠还给同伙,改过自新,但两人早已与葛朵同伙。他们设下陷阱,将弗林双手绑在舵上,将船放入湖中,借着雾,让长发公主误以为弗林背叛她,带走皇冠逃之夭夭。葛朵借此带着伤心欲绝的长发公主回到高塔。而弗林则被逮捕,因偷窃王冠罪被判以绞刑。
回到高塔,长发公主察觉种种迹象,意识到她正是王国里那失踪已久的公主,向葛朵表示她全都想起来了,但葛朵知情要一辈子的闭关长发公主。同时,白马找来酒馆的恶棍们,合力救出费林,白马将弗林带回高塔去营救长发公主。费林进入塔中,却被埋伏的葛朵刺伤,生命垂危,长发公主承诺如果她能治愈费林的伤口,将永远留在葛朵身边。葛朵同意了,但弗林说,他宁可死也不让她永远被困,并切断了她的长发,魔发的魔力消失了,并变成了棕色,葛朵年轻的美貌迅速衰老,跌下高塔化成灰烬。弗林深爱着长发公主,但伤重而死去。长发公主伤心地抱着弗林,尝试唱起咒语,眼泪随之滴落在弗林脸颊,闪出太阳般的光芒,奇迹般治愈了弗林。最后,长发公主回到城堡,与失散多年的父母重逢。随着时间流逝,弗林与长发公主结了婚,从此过上幸福的生活,酒馆恶棍也都实现各自的愿望,白马成为一位受人尊敬的皇家卫队队长