话说孙悟空护送唐三藏去西天取经途中,为了和牛魔王妹妹成亲,欲把唐三藏作为贺礼,于是和牛魔王合谋要杀害唐僧,并偷走了紫霞仙子的月光宝盒。观音大士闻讯赶到,欲除掉孙悟空免得危害苍生。唐三藏慈悲为怀,愿以命相换,观音遂令悟空五百年后投胎作人,赎其罪孽。 五百年后的一天,五岳山下大漠风沙漫漫,斧头帮来了一个奇怪的女客春三十娘(蓝洁瑛饰)。众人在二当家(吴孟达饰)带领下欲行抢劫,反被她制住。匪头至尊宝(周星驰饰)率众复仇失败,春三十娘勒令群匪找一个脚底有三颗痣的人。晚上至尊宝等欲用迷香加害春三十娘,却令其现出蜘蛛精的真身。至尊宝孤身潜入春的房中,发现多了一个白晶晶(莫文蔚饰),至尊宝对她一见钟情。二当家夜探二女,查出原来春三十娘是蜘蛛精,白晶晶是白骨精,她们从菩提老祖那里得知唐三藏将会出现在五岳山,为了吃唐僧肉而来。二当家偷听到了她们的谈话,不幸被抓住,春三十娘用移魂大法将其奴化(牛魔王的手下化身为牛,也在此时听到了她们的谈话)。 菩提老祖为了挽回自己的口失来到五岳山,他说明至尊宝是孙悟空转世,至尊宝不相信。白骨精五百年前和孙悟空有一段纠缠不清的恋情,为了救至尊宝打伤了春三十娘,却中毒受伤。此时牛魔王杀到,二女不敌,挟持至尊宝和二当家回到盘丝洞。春三十娘假意逼迫白晶晶杀掉至尊宝,反被二人用计关在机关里。春欲用催情大法让至尊宝和白晶晶产生嫌隙,却错用在二当家身上。白晶晶和至尊宝趁机逃出盘丝洞。 白晶晶和至尊宝逃出后,白的毒发作开始尸变,至尊宝为了白返回盘丝洞,他以知道唐僧下落为由要挟春和他一起去救白晶晶,但被春三十娘关进密室。白早上醒来不见至尊宝,误以为至尊宝不顾她离去,悲愤跳崖,幸为牛魔王所救。牛魔王治好了白晶晶的病,条件是白晶晶要带牛魔王去盘丝洞。 至尊宝在盘丝洞找到盘丝大仙留下的月光宝盒,此时牛魔王带白晶晶来到盘丝洞。白以为春和二当家生下的孩子是她和至尊宝所生,愤而自刎。至尊宝为了救白,使用月光宝盒使时光倒流,几次后产生故障,竟将其带回五百年前,这时紫霞仙子向她走来。