清朝時期,宣化有個叫孟祁越的放牛郎,他上有八十老母卧病在床,下有寡嫂一家三個孩子需要帶,生活過得異常艱苦,可這不能改變他善良的內心,這日孟祁越去山上放牛,遇到一頭身受重傷的公羊。
公羊的腹部中箭,應是村裡的獵戶所為,孟祁越動了惻隱之心,把它身上的長箭拔下,又憑藉著幼時向母親學的針線手藝,給公羊縫好傷口,還小心翼翼得纏好繃帶,放公羊回了山林。
公羊一步三回頭地望着孟祁越,戀戀不捨地跑開,當晚孟祁越躺在床上休息,做了一個夢,夢中被他救下的公羊來到他面前,開口道:「恩人,你明日去河邊,會看到幾個美女在河邊洗澡,你把河岸邊的衣裳偷走,這樣美女就會留在你身邊。」
孟祁越清醒後,對夢中的真假有些懷疑,且偷衣服的行為不符合君子的行為,他在猶豫到底要不要去,這時母親陳氏把他叫到了身邊,讓他趕緊想辦法娶妻生子,可孟祁越又何嘗不想娶妻生子,得有姑娘能看上他才行,以他的條件,就算姑娘相中了他的人品,得知他家境貧寒,也不會和他一起受苦。
孟祁越不想讓陳氏擔心,一直點頭說好,出了門就犯了愁,他糾結了半日,還是在傍晚去到了河邊,在那裡聽到了一陣少女的嬉鬧聲,孟祁越聽得臉頰緋紅,一眼也不敢抬頭看河面,只把岸上一件紅色的衣服揣懷裡,躲在一棵大榕樹後面。
在河中洗澡的,是結伴而行的幾個女神仙,其中有個最小的女神仙叫沈丹煙,她從始至終沒有開口講一句話,只是一直瞧着姐姐們害羞的笑,待到她們全都洗好,穿上衣服準備離開,沈丹煙也在河岸找起了衣服,卻找了半天也沒找着,別的女神仙都回到了天庭,她卻還留在河裡不能出去。
這時,孟祁越在大榕樹後面冒出,把手中的衣服遞給了她。
此時已是二更,孟祁越讓她到家裡留宿一夜,還給她準備好了晚飯,這讓沈丹煙對孟祁越心生好感,次日一早她準備返回天庭,卻遇到了場大雨,沈丹煙不得已又在孟祁越家留宿,此後她每次產生要離開的心思,天上就會下大雨,她以為這是上天都在撮合她和孟祁越,就在人間和孟祁越成了婚,還孕育了一個兒子叫孟鈺坤,準備留在人間和孟祁越生活。
夫妻二人的關係和睦,恩愛有加,孟祁越除了放牛,其餘的時間都在家陪伴妻子和孩子,而沈丹煙也幫忙照顧婆婆,讓孟祁越省了不少心。
眨眼間到了十三年後的某個傍晚,孟鈺坤長成了少年模樣,這日孟祁越放牛還沒回來,家裡僅有孟鈺坤和母親沈丹煙在,這時天上突然烏雲滾滾,一個渾身散發著金光的女神仙站在天上,她是沈丹煙的母親曹氏。
天上一天,人間一年,沈丹煙在人間生活了十三年,天上才過了十三天,曹氏一直以為她在跟別的女神仙玩樂,見了幾個和沈丹煙一起洗澡的女神仙才得知,她待在人間沒有重返天庭,沈氏火急火燎地來人間尋找,竟是發現沈丹煙和凡人成了親。
凡人和神仙在一起,違背了天規,這樣的神仙必定要受到嚴厲的懲罰。
曹氏怒不可遏,她不等沈丹煙反抗,帶着她一起重返天庭,又擔心她再次和凡人攪和在一起,把她封印在了青山之中,外面的人不能隨意進入,沈丹煙在裏面也甭想出來。
放完牛到家的孟祁越,在兒子口中得知了這一切,傷心欲絕地度過每一日,直到這日傍晚,他再次夢到了公羊。
公羊在夢中口吐人言道:「恩公,十日後村裡會出現一名叫宋真人的道士,你讓兒子跪在他腳下拜他為師,讓他傳授給孟鈺坤術法,待到孟鈺坤學成,能救回沈丹煙。」
經歷過上一次的事情,孟祁越已對公羊的話深信不疑,他第十日守在村口,果真遇到了宋真人,連忙讓孟鈺坤給宋真人跪下。
孟鈺坤思念母親,也想要儘快救她出來,他聲淚俱下地把自身的遭遇告訴了宋真人。
宋真人聽了感動不已,遂帶着孟鈺坤回道觀,親自領着他修習術法,包括他的師兄弟也幫忙教孟鈺坤,再加上孟鈺坤的勤奮好學,沒日沒夜地練習,終於在十年後學會了一身的術法。
臨別時,宋真人送了孟鈺坤一把寶劍,讓他用寶劍把山裡的封印破開,這樣曹氏就沒有辦法再困住沈丹煙,孟鈺坤帶着寶劍去到青山腳下,找到一處山洞進入,果真在裏面見到了母親沈丹煙。
不過,彼時的沈丹煙被廢了一身修為,身體虛弱地躺在石板上,孟鈺坤想要靠近她,卻被結界阻隔在外,這時他拿出了寶劍,一劍劈開了封印,之後一把將母親抱入懷中。
不久後,沈丹煙也慢慢地醒了,她和兒子一起回了家,還見到了丈夫孟祁越,一家人分別了十多年才團聚,每個人都喜不自勝。
天上的曹氏以為,沈丹煙一直在青山中,這日她到青山探望女兒,順便看看她有沒有誠心悔改,到了青山發現女兒已經逃跑,不過她被女兒和凡人的感情所打動,沒有再去追女兒回來,而是放任着她和凡人在一起。