從前有一個國王和他的王後都很蠢,兒子命名典禮上,客人的名單念到一半就不念了。這下得罪了一個騎鴕鳥老遠趕來的仙女,她詛咒王子將來是個小矮子。善良的仙女基尼斯塔為了補救這個不幸,把王子交給農婦帶大,後來又培養成為知識豐富武藝高強的人。盡管她給了王子種種優點,王子的個子卻不見增加。
一天王子看到一幅薩貝拉公主的畫像,還聽說誰為薩貝拉登上冰山頂峰,誰就能得到她和她的整個王國。王子迷上了她的美貌,一路上打聽前往那個國家。
有一次,他漂到一個荒島上遇到一艘怪船,桅杆和船舷像樹一樣枝枝杈杈長滿了樹葉,看上去像座樹林,船上的水手都跟甲板、桅杆和船舷連在一起,像死人一樣。王子用箭頭把他們跟木頭分開,給他們按摩,還用草藥泡水給他們洗澡,居然把他們都救活了。王子還用草藥擦船,清理了枝枝杈杈。他很細心,仔細研究,發現船上的怪事跟船艙裏的塵土有關係,便收集了一包帶在身邊。
後來他到了一個奇怪的國家,那裏的房屋和莊稼跟別的國家沒有什麽兩樣,就是從國王到老百姓家都是長毛狗。原來那是一個中了魔法的國家,人們都被一個仙女變成了狗。王子很同情他們,安慰國王,並和國王交上朋友。
王子在一隻小猴子的幫助下,找到了金山。那裏有成堆的金子。盡管他很需要錢,但他卻隻拿了最小的一塊。為此仙女基尼斯塔對他很滿意,原來仙女一路上都在暗中幫助王子,猴子就是她變的。
王子終於到達薩貝拉的王國,這才知道仙女貢左拉偷去了薩貝拉的心,藏在冰山上頂峰的冰窯裏,去取的人沒有一個能活著回來。薩貝拉美麗非凡,就是缺少感情,唱悲傷的歌也好,唱的歡樂的歌也好,唱出來的都是一個味兒,其他方麵也都是這樣。因為美,世界各地的王子都趕來,想為她到冰山頂峰去取回那顆心來,已經有五百個王子為她喪失了性命。小矮子遭到大家的嘲笑。其中一個身材魁梧的王子侮辱了他,他便向那王子挑戰了,並饒了對方的性命。矮子王子因此得到許多朋友。不久,因為他的種種優點,成了朝廷中舉足輕重的人物,薩貝拉跟他很談得攏,隻是並不愛他。他決心上冰山為她取回心來。長毛狗國王派了四十八隻長毛狗支援他。