艾瑪和亞歷山德拉、瑞金娜,看見了巫后在羅賓的墓前,艾瑪用劍刺傷了巫后的臉,巫后發現自己的傷靠自己的魔法無法愈合,于是沮喪地逃走了。?朗普又將金手鐲扣住了她左腕,這樣,巫后就無法逃脫他的追捕。他因為巫后對貝兒做的事而對她仇視。他告訴巫后,如果艾瑪干不掉她,等他找到兒子后,他就會干掉她。
艾瑪手持寶劍,和亞歷山德拉、白馬一起去找巫后,發現巫后將萊莉當作人質,艾瑪只好后退一步。巫后還搶了萊莉的神燈,召喚了阿拉丁。阿拉丁不得不遵從巫后的命令,巫后許的第一個愿望,是使艾瑪不再是救世主。阿拉丁將艾瑪變到了另外的世界。瑞金娜帶著亨利趕過來,大家為艾瑪到底去了哪里爭執了起來。
巫后作為神燈的主人,奴役著燈神阿拉丁。瑞金娜想到了辦法,她找到了巫后,因為她們本來就是一個人,也向阿拉丁說出了愿望,要去艾瑪在的地方。阿拉丁顯然更樂意聽從這個愿望。
瑞金娜到了艾瑪現在所處的世界。她先看到了七個小矮人,高興地過去打招呼,結果小矮人們將她當作了巫后。見到艾瑪后,艾瑪也同樣將她當作了巫后,完全不記得她是瑞金娜了。白馬白雪趕到,對她拔劍相向。瑞金娜只好暫時離開。
瑞金娜知道,這不是個真實的世界,這個世界是由一個愿望造成的,只是為了困住艾瑪。她遇到了關在監獄里的朗普,朗普許諾能給瑞金娜魔法豆,這個魔法豆可以喚醒艾瑪是救世主的意識,瑞金娜將他從監獄里放出來,約好第二天在湖邊見面拿魔法豆。朗普還說瑞金娜必須變成巫后的樣子,才更有把握喚醒艾瑪。
第二天也是亨利成為騎士的大典。巫后模樣的瑞金娜出現在典禮上,帶走了白馬白雪,讓艾瑪去找能阻止巫后的英雄。
童話鎮里,白馬、亞歷山德拉他們在想著辦法。白馬找到巫后,奪取了神燈,呼喚了阿拉丁,他許的愿望是讓巫后得到她應得的。許愿過后,巫后似乎毫發無損,巫后得意洋洋地說,她的愿望是讓白馬家破人亡,現在,他的妻子白馬沉睡,女兒艾瑪被困在了愿望里,他只能孤獨終老。
瑞金娜終于喚醒了艾瑪,她們準備一同回到童話鎮來找巫后戰斗。但這時的巫后,已被一個突然出現在童話鎮的兜帽人變成了條關在籠中的毒蛇。
朗普告訴貝兒,兒子消失了。貝兒打電話給修道院院長,確認了這件事。院長告訴他們,是黑仙子帶走了他們的兒子。黑仙子是朗普的母親,那個厭棄他的母親。倆人正在商量如何找到并救出兒子,兜帽人來了,原來他就是他們的兒子。
瑞金娜和艾瑪拿到了魔法豆,正要回到童話鎮,這時,羅賓出現了,瑞金娜曾經的愛人。明知這個世界一切都是假的,只是個愿望,瑞金娜還是癡癡地看著他,一步步走近他。眼看著帶她們回到童話鎮的魔法豆就要失去作用,艾瑪卻怎么也叫不醒瑞金娜。
1990年的冬季,在明尼那波利斯,孤苦伶仃的小艾瑪正在燒書取暖。她撕下寫著丑小鴨故事的書頁正要投入火中時,一個年輕人制止了她。他告訴小艾瑪這個故事很棒,并且說,最好的童話都在講關于蛻變的事。如果信念足夠堅定,就會擁有改變命運的力量。
回到童話鎮的魔法豆失去了作用。瑞金娜卻只顧呆呆地看著羅賓。羅賓用弓箭指著她和艾瑪,讓她們交出珠寶來。
艾瑪乖乖地交了出去,瑞金娜卻不敢相信羅賓居然不再認得自己。艾瑪告訴她那不是羅賓。這時,亨利帶著人來追捕瑞金娜,想找回母親艾瑪。艾瑪急忙帶著瑞金娜藏起來。現在的艾瑪清醒地知道,此刻她們所處的世界不是真實的,只是一個為了困住自己而造的假世界。
童話鎮里,白馬和亞歷山德拉正在努力尋找兜帽人的蹤跡。他們想趕在艾瑪返回童話鎮之前將他抓住,以免他給艾瑪帶來傷害。在艾瑪一直反復出現的幻覺景像中,正是兜帽人殺死了她。
白馬本該去吻醒白雪,但現在他顧不上了。他告訴亞歷山德拉,正是因為他一心想讓巫后得到懲罰的愿望,帶來了兜帽人,所以他要制止兜帽人傷害女兒艾瑪。
朗普和貝兒看著他們的兒子瞬間長大成一個28歲的青年,感覺不可思議。兒子告訴他們,他是去了一個與此不同的時間,被黑仙子養大的。他告訴父母,黑仙子做了很多事想讓他變壞,但他一直以母親貝兒為榜樣,黑仙子失敗了。
貝兒正要露出欣慰的笑容,卻聽到兒子說他就是來殺救世主的,因為另一片土地也需要救世主,他要獲得艾瑪的力量,把那塊土地從黑仙子的統治下解救出來。
艾瑪想到了回童話鎮的辦法。瑞金娜卻不告而別,獨自去找羅賓。她想看看哪怕是假的羅賓,在沒有她時是不是能過得幸福。結果倆人同時被捕,最后羅賓帶著瑞金娜成功越獄。
艾瑪在匹諾曹幫助下,擁有了能重返童話鎮的魔法門。這時,瑞金娜也帶著羅賓找來了。他們一同返回了童話鎮。
走在街上的艾瑪,被背后的兜帽人叫住了。兜帽人告訴她自己叫吉迪恩,然后舉劍殺向艾瑪,艾瑪舉劍格擋,但劍被吉迪恩奪去,這時,白馬和亞歷山德拉、亨利都趕來了,瑞金娜和羅賓,朗普和貝兒也來了。吉迪恩施法定住了所有人,再次舉劍走向艾瑪。
艾瑪的右手發起抖來,但瞬間積聚力量,將吉迪恩彈了出去。艾瑪拾起劍來架在了吉迪恩的脖子上。這時,朗普求艾瑪放過吉迪恩,吉迪恩畢竟是他的兒子。吉迪恩說自己不需要朗普的幫助,然后施魔法消失了。
眾人上前擁抱艾瑪,恭喜她戰勝了命運,逃過此劫。
艾瑪找到童話鎮的世諾曹,告訴他自己知道了小時候的事,正是他當年鼓舞了自己要建立信念,才有了今天這個靠信念改變命運的自己。
多年前,羅伯特和露絲是一對窮困的夫妻,他們有一對孿生兒子戴維和詹姆斯。兒子們病了,羅伯特卻無錢買藥,這時,朗普送來了藥,但提出了交換條件。救活他們的兒子,但要把其中一個送給無子的國王喬治。他們最后用一枚硬幣決定了要把詹姆斯送給國王。
艾瑪打敗了吉迪恩,全家人聚在一起為她慶賀,除了還在沉睡的母親白雪。深夜,獨自坐在庭院臺階上的父親白馬,就是戴維,突然看到父親羅伯特滿手鮮血地出現在面前,白馬吃驚之下暈倒在地。醒來后他發現并非虛幻,因為地上有一枚硬幣。
白馬喚醒了白雪,他沉入深睡。白雪發現瑞金娜帶回了羅賓,覺得她這么做不妥。她認為羅賓只是長得跟羅賓漢樣子一樣,根本就是倆個人。因為白雪有過經驗,她吻過白馬戴維的雙胞胎哥哥詹姆斯,她認為完全不同。
白馬聽到父親說讓他找出真相。白馬不想讓白雪或者艾瑪為他擔心,所以他趁艾瑪帶亨利外出的時候,請亞歷山德拉幫忙,偷到艾瑪的魔法藥水施咒,然后得知父親當年是去歡樂島找離宮出走的詹姆斯王子。
白馬怕亞歷山德拉阻止自己復仇,將他銬到一個地方,然后自己找到了監牢里,那里關著當年殺掉父親的人,當年的國王,國王承認了是他下令的。
白馬正要殺掉仇人,這時,亞歷山德拉掙脫了鎖銬,及時趕到,阻止了他的復仇。因為復仇不能使白馬變得更強大。而白馬父親重新出現在白馬面前的真正意義在于,他讓白馬通過尋找真相,得知了父親并不是酗酒而死,而是為了找回詹姆斯使家庭團圓。
通過這件事,白馬也終于意識到了亞歷山德拉不再是當初的那個海盜,他已經變成了一個真正的好人,并且在這件事里,他還成功地阻止了自己再犯將來會后悔的錯誤。亞歷山德拉心里的一塊石頭總算落了地,本來他一直擔心白馬會不同意自己向艾瑪求婚。因為白馬以前總把自己當做海盜,認為自己配不上艾瑪。
白馬解決了問題,吻醒了白雪,他再次陷入沉睡。白雪和瑞金娜談起了羅賓。瑞金娜告訴白雪,自己跟羅賓親吻了,但沒什么感覺。看來,羅賓漢穿過那扇傳送門來到童話鎮的真實世界,并不是因為自己,那么他到底是因何而來呢。瑞金娜困惑而又疑慮地問白雪,又像是自言自語。
在瑞金娜的房間里,羅賓漢拿起了瑞金娜最具魔力的寶盒,久久地端詳著。
匹諾曹找到了記載當年歡樂島上事情的那幾頁書紙。他去找白馬,碰到了亞歷山德拉,于是交給亞歷山德拉,托他交給白馬。亞歷山德拉看了幾眼,回想起了當年真正殺死白馬父親的,并不是國王,而是他本人,為了得到錢財,他親自動的手。這下,他真的覺得自己不配向艾瑪求婚了。