寧采臣(張國榮飾)是一名收帳書生,因為帳簿被大雨弄濕,而被迫在一破廟留宿數夜。但道士燕赤霞(午馬飾)警告他儘快離開。寧沒有理會,後被古琴聲引至郊野而遇到女鬼聶小倩(王祖賢飾)。女鬼只能在夜間活動,見陽光會化灰。小倩為千年樹妖(姥姥)所控制,被迫引誘凡人,方便姥姥(劉兆銘飾)以長舌將受害者魂魄和肉身吸乾。小倩引誘寧采臣,卻為其真情所动,不願加害于他。两人希望死生相依,然而姥姥欲將小倩嫁給黑山老妖。寧采臣求救于燕赤霞。二人最終打退樹妖,將其封印一百年。又消滅黑山老妖,使小倩得以投胎轉世做人,最後燕赤霞決定回歸蘭若寺避開塵世。