突然,爱丽儿听到有人在对她说话,原来是亚立克。他正带着他的爱犬在海滩上散步。他每天都要这样做,为的是寻找救他的姑娘。但他不知道姑娘的模样,只记得她的声音。他看到了爱丽儿,以为她不过是遇到海难后被冲上岸的可怜女孩。王子见她不会说话,以为她受了伤,就带她回城堡治疗,还给她穿上了漂亮的衣裳。虽然王子喜欢爱丽儿,但心中爱的却是另外一位--那位救了他,又为他唱歌的姑娘。
时间过得飞快,爱丽儿还没有得到王子的吻。这一天他们出门划船,爱丽儿的美丽打动了王子,王子很想吻她。乌苏拉的鳗鱼见事情不妙,就在爱丽儿将要得到王子的吻时,顶翻了小船。在海洋里,乌苏拉从透明的海贝壳里看到了一切。她决定用魔咒把自己变成一位美丽的姑娘,并带上锁着爱丽儿声音的海螺。她绝不能让王子再有机会亲吻爱丽儿。乌苏拉来到海滩上,用爱丽儿美妙的歌声引来了王子,并得到了王子娶她为妻的许诺。
乌苏拉提出立刻就在船上结婚,王子答应了。在船舱里,乌苏拉望着镜子中自己真实的面目得意地大笑。这一幕,恰巧被飞过这里的史卡托看到了。史卡托和小胖连忙赶回去,把乌苏拉做的坏事和她的阴谋诡计都告诉了爱丽儿。他们一起来到了船上,牧师正准备为亚立克王子和狡诈的乌苏拉举行婚礼。史卡托连忙呼唤他的鸟类朋友来帮忙。鸟儿们一拥而上,撕扯乌苏拉的衣裳,混乱中,装着爱丽儿声音的海螺落在了地上。爱丽儿又可以说话了,她大声警告亚立克提防海巫的诡计。
但是就在这时,三天的期限到了,爱丽儿失去了她的双腿。恢复了丑陋面目的乌苏拉抓住爱丽儿跳入海中。她狞笑道:"哈哈,我赢了!"亚立克终于认出了救他性命的姑娘,他必须去救她!他拿起一柄渔叉,跳入海中,猛力向乌苏拉掷去。乌苏拉怒嚎一声,变成了一头巨型海怪。她用又粗又长的触手搅动着海水,企图让爱丽儿和王子与大船一同撞个粉碎。亚立克紧紧抱住爱丽儿,不让恼羞成怒的海巫伤害她。勇敢的王子急中生智,他飞快地游向自己的船,爬上船去,操纵舵轮,让船调转方向,向乌苏拉猛撞过来。尖利的船头刺穿了她的心脏,乌苏拉死了!