晉代時期,晉陵有個叫白玉蝶的少女,她十歲時失去了父母,只能依靠乞討為生,有時候,白玉蝶要不到吃的東西,只能上山挖野菜,尋找野果充饑。
隨著白玉蝶漸漸長大,她知道乞討不是長久之計,就纏著村裡一個郎中教她識別草藥,往後她經常上山草藥,用采來的草藥換些銀錢,如此倒也能養活自己。白玉蝶十八歲那年的夏天,她又去山上採藥,沒想到因此遇到了一樁怪事。
白玉蝶上山採藥的時候,意外在山上發現了一棵極為罕見的靈芝草,白玉蝶聽村裡的郎中說過,靈芝草有非常神奇的藥效,一顆靈芝草能賣百金。
白玉蝶高興地採下靈芝草,一心認為自己要發財了,沒想到她剛將靈芝草拿到手裡,一個人身鹿頭的怪物忽然從草叢裡衝出來,想要搶走白玉蝶手中的靈芝草。靈芝草無比珍貴,白玉蝶自然不能讓怪物搶走,她緊緊護著林芝草,拔腿就跑,可那怪物卻對她緊追不捨,似乎不願意讓白玉蝶帶走靈芝草。
眼看那怪物越來越近,馬上就要追到她,白玉蝶不願意自己找來的靈芝草便宜了這個怪物,便一口吞下了靈芝草。白玉蝶以為自己吃了靈芝草,那怪物就會放過她,沒想到那怪物卻衝上來扛起白玉蝶就跑,直接將她抓進了一個非常隱蔽的山洞裡。
怪物將白玉蝶扛進山洞以後,就凶神惡煞地向她撲了過來,白玉蝶以為自己必死無疑,嚇得雙眼一翻就暈了過去,等到她醒來時,卻發現自己的身體有些不太對勁。
白玉蝶從昏迷中醒來時,發現那怪物已經不知去向,她坐起身,只覺得自己的身體十分疲累。讓白玉蝶感到奇怪的是,她發現自己的肚子竟然鼓了起來,看起來就像是懷孕四五個月的孕婦。
白玉蝶不知道那怪物對自己做了什麼,她心中惶恐不安,便趁著怪物不在山洞,急忙起身離開了。當白玉蝶回到村裡時,村裡的人看到白玉蝶都覺得十分驚奇,人們都說白玉蝶已經失蹤了四五個月,他們找了許久,都沒找到白玉蝶的身影。
白玉蝶聽到村裡人的話,心裡更迦納悶,她不過是在山洞裡停留了半日的時間,怎麼回到村裡,人們卻說過去了四五個月?
白玉蝶雖然覺得事情不對勁,但是她並沒有與人們多說什麼,她只想查清楚自己的肚子為何鼓起來,於是她來到郎中家裡,請郎中為自己診治,沒想到郎中為白玉蝶診過脈以後,卻說白玉蝶已經身懷六甲,並且她腹中的胎兒已經快五個月了。
白玉蝶得知自己懷了身孕,心裡更加奇怪了,難道那怪物對他做了什麼,她才懷了身孕?若是她留下這孩子,會不會生下一個怪物?
白玉蝶畢竟只有十八歲,從沒經歷過這種事情,她心中害怕,不知道該如何處理這件事,便找到一個道士尋求幫助,沒想到那道士聽了白玉蝶的遭遇以後,卻笑著對白玉蝶說道:「你有福了!」
原來將白玉蝶扛走的怪物,並不是怪物,而是一隻鹿神,它也是山中的山神。因鹿神降服一隻蠍子精時,不慎被蠍子精打成重傷,導致他變成鹿頭人身的模樣,遲遲無法恢復人形。
鹿神已經守候了那靈芝草四十九天,他想要搶走靈芝草,就是因為吃了靈芝草,他的傷口就能痊癒,他就可以恢復人形,可他沒想到,白玉蝶卻吞下了靈芝草。
因白玉蝶吃了靈芝草,就與靈芝草合二為一,只要鹿神與白玉蝶行周公之禮,就能有同樣的作用,鹿神便與白玉蝶共赴巫山,白玉蝶這才身懷六甲。
因白玉蝶身處神仙洞府,她雖然只在那裡停留半日,人間卻過去了四五個月,而白玉蝶還是肉體凡胎,她懷孕的時長,才會與人間的時間一樣,這也是白玉蝶的肚子看起來有四五個月大的原因。
道士說明其中緣故以後,還笑著表示,白玉蝶腹中的是鹿神之子,是天生的神仙,生下這個孩子,白玉蝶就是神仙之母,也能修鍊長身不老之術,名列仙籍。
白玉蝶從道士口中得知自己懷孕的真相後,只覺得十分驚奇,她沒想到自己竟然會有如此奇遇。白玉蝶離開道觀以後,心裡仍是覺得不安,她不知自己該不該留下這個孩子,她家境貧寒,養活自己已然非常困難,若是生下這個孩子,又該如何照顧孩子呢?
正當白玉蝶糾結著該不該留下這個孩子的時候,一個長相俊美的年輕男子找到了她,他自稱叫鹿澤,是山中的鹿神。鹿澤表示他不得已才與白玉蝶行周公之禮,當時他傷得非常嚴重,若是不與吃了靈芝草的白玉蝶行周公之禮,他必死無疑。
鹿澤先是向白玉蝶道了歉,並表示自己本想等到恢復人形,就與白玉蝶說明真相,並對她負責,沒想到白玉蝶卻離開了山洞,他這才下山尋找白玉蝶。
鹿澤表示他願意娶白玉蝶為妻,往後會照顧她和孩子,讓他們過上好的生活。白玉蝶看到鹿澤待人溫和有禮,還非常有擔當,便嫁給了鹿澤,從後她和鹿澤一起住在山裡,兩人一起修鍊,他們還生兒育女,成為了神仙們都羨慕的恩愛夫妻。