荒郊中的蘭若寺頻頻有人喪命,身無分文的書生寧采臣(張國榮飾)不顧道士燕赤霞(午馬飾)的反對借宿在此。深夜,寧采臣邂逅女鬼聶小倩(王祖賢飾),卻不料小倩突露殺機,寧采臣的正直、善良打動了小倩,兩人展開了一場曠世人鬼絕戀。此事被掌控著小倩的千年樹妖姥姥(劉兆銘飾)發現,欲將小倩許配給黑山老妖。一邊是姥姥的威逼利誘,一邊是赤誠書生的情義初起,小倩陷入兩難選擇。在燕赤霞的協助下,寧采臣以純陽之身破除妖法,最終助小倩脫離姥姥魔掌。但人鬼殊途終難相守,小倩魂魄隨晨曦消散,唯留寧采臣獨對殘破劍鞘悵然若失。