黎明请你不要来书生宁采臣（张国荣饰）到兰若寺躲雨，为道士燕赤霞（午马饰）所拒。夜半，被少女聂小倩（王祖贤饰）美妙琴音吸引，两人自此交往甚密。不料小倩乃树精姥姥（刘兆铭饰）所操纵的女鬼，正在寻找壮男吸取阳精。燕赤霞义助宁采臣对付姥姥，并玉成他们这对人鬼恋人。
宁采臣赴郭北县收帐，逢大雨，躲入传说纷纭的兰若寺投宿，但为寺内道士燕赤霞所拒，宁偷偷潜入寺中，入夜，宁被一阵琴音吸引，邂逅少女聂小倩，小倩突露杀机，幸燕赤霞赶到，救下宁一命。小倩感其正直，心生爱意，但被燕阻止。宁却误认燕为杀人犯，欲与小倩逃走，树精姥姥逼小倩杀宁，小倩不肯，姥姥命众魔欲杀宁与小倩，燕再次出现，救 下二人，姥姥重伤。此时宁才知小倩原是一游魂，因尸骨被弃荒野而受姥姥控制，每夜四处寻找壮男为姥姥吸引阳精，增益延寿。为免小倩再次受辱，宁答应将其尸骨送回乡安葬，不想此时小倩又被地府石妖强抢为妻，燕经不住宁相求，再次出手，终于救回小倩，但燕让小倩投胎转世，这一对有情人终无法携手。
有网友说
，这部徐克监制冬儿导演的电影谈不上是如何严肃的古装片，其中穿越的台词数来比比皆是，奚仲文给两位男主角安排的打底裤有着极潮的布纹；也不能完全算武侠片，片中貌似没有江湖