仁宗年間,壹盲眼老婦李氏與義女梅娘居鄉下以賣菜為生。李氏口口聲聲對梅娘自稱“哀家”,弄得梅娘啼笑皆非。其實李原為真宗之妃,因產下龍子受劉妃嫉妒,不但被劉妃以貍貓換去太子,還險些喪生於冷宮。李忍辱埋名二十年,只望再能見兒子壹面。梅娘偶見表哥白玉堂不服展昭“禦貓”之名,與展昭比武,誤認展昭為壞人,為躲避展昭,險遭八賢王之舅趙國棟汙辱,反被昭救下。從此傾心於昭。 展昭也相當喜歡這個秀美溫柔的女孩兒。昔日劉妃今日已為太後,至大相國寺燒香時遇見李氏,驚為鬼魅。心腹郭槐欺李眼盲,設計騙李入宮。李危在旦夕。
李眼盲心亮,知道自己落在敵人手中,故意裝瘋賣傻,令郭槐與劉後無計可施。趙國棟念念不忘梅娘,擒其回家欲加汙辱,被展昭發現跟蹤而追去。展昭為救梅娘陷入機關,幾乎受傷。梅娘感其恩,敬其義,對展昭壹往情深,白玉堂大為吃醋卻又無可奈何。趙國棟貪花好色,惹下命案,雖經八賢王多方求情,包拯仍毅然將其鍘首。八賢王惱羞成怒,慫恿年少氣盛的皇帝將包拯罷官,開封府諸人痛心疾首。
多方試探之後,郭槐終信李氏並非李妃,但恐其走漏秘密,派侍衛滅口。展昭知道郭槐既是包拯好友,又是包拯救命恩人,冒險潛入宮中想托郭槐為包拯求情,正好救了李氏。展昭聯想起日前梅娘曾遭宮中高手跟蹤,知必有蹊蹺。展昭機智過人,知道郭槐必定不肯放過李氏,於是設下巧計,躲過郭槐追殺,將李氏與梅娘平安帶回開封府。
李氏至開封府,取出先帝所賜金丸為憑,向包拯說明身份。此時郭槐來訪,李氏發現二人交情極深,十分失望,與白玉堂、梅娘偷偷離去。郭槐知道李氏身份後大為驚恐,令手下夜入開封府偷盜金丸欲消滅證據。不料落入包拯算計中,盜回的僅是假金丸。同時相國寺方丈因知情太多被郭槐滅口,但在臨死前卻將所知情況都告訴了好友展昭。包拯發現郭槐可能是壹個驚天動地的大陰謀方面的主使者,深感“情義兩難全”的為難。包拯將金丸送入八賢王府,希望求得八賢王幫助。不料弄巧成拙,八賢王壹方面記仇,壹方面又受郭槐蒙蔽。不但金丸被郭槐私下換去,二人更合謀扣下令包拯復職的聖旨,勒令包拯速速離開京城。開封府諸人悲憤莫名,均表示願意辭官隨包拯回鄉,跪求包拯帶他們同行。包拯與他們互訴心聲,百感交集。雖然難以割舍,但還是忍痛拒絕了他們的請求,黯然離去。
包拯心系“貍貓換太子”壹案,終於還是暗中留下來了。他拜訪了李氏,承認了李氏的國母身份。原來當今皇帝名義上是八賢王之子,實際上卻是李氏當年那被換走的親生骨肉。此事唯有李氏、內監主管陳琳、八賢王夫婦知道內情。包拯趁皇上獨自在相國寺燒香時安排李氏上前相會。李氏思子心切,見皇上不肯相信自己壹怒之下竟杖打皇上。皇上當時雖大怒離去,但母子天性作用,回宮後多方打聽,發現了許多疑點。包拯猜測郭槐為保守秘密,必定不會放過陳琳,展昭領命,再次深夜入官找到陳琳,曉之以情動之以理,又擒下了郭槐所派刺客,揭露了郭槐的險惡用心。陳琳終於被展昭打動,告訴皇上:若要知“貍貓換太子”詳情,必須請教八賢王。
面對皇上的追問,八賢王無言應對,狼狽離去。包拯猜測八賢王是害怕犯上欺君之罪才不敢直言,不顧八賢王冷眼,親自上門拜訪。八賢王被包拯誠意感動,又與李妃故人重會,終於下定決心,向皇上說明真相。皇上大為震驚,下密旨令包拯官復原職,上至劉妃下至郭槐均可隨意提審。郭槐與包拯對昨。郭槐表示為了他的意中人——劉妃,可以不惜作任何犧牲。包拯雖然敬重他的重情重義,但也表示決不徇私枉法。二人痛飲絕情酒,擲杯斷交。郭槐在劉妃窗外叩別後,黯然隨包拯回開封府。八賢王、李妃、陳琳在公堂上訴說當年“貍貓換太子”真相,展昭也力證郭槐曾經派大內高手綁架、暗殺李妃。無奈當年最有力的證人——宮女寇珠已經在二十年前被郭槐迫害而死。郭槐又咬緊牙關,不肯認罪。單憑堂上諸人的壹面之詞,包拯無法對郭槐判罪,十分為難。
陳琳見到梅娘,驚覺梅娘竟與寇珠壹模壹樣。包拯利用自己“日審陽,夜斷陰”的傳說,夜審郭槐,並讓梅娘假扮寇珠的鬼魂來試探郭槐。不料郭槐老奸巨猾,看出破綻,反而把梅娘逼問得狼狽不堪。正在緊要關頭,寇珠的鬼魂突然出現,滿臉鮮血,神情淒厲地向郭槐討還血債。郭槐精神崩潰,終於認罪。仁宗與李妃母子團圓,報頭痛哭。仁宗深恨自己犯了“不孝”之罪,問包拯應該如何論罪。包拯讓仁宗脫下龍袍,杖打50以作懲戒。包拯與郭槐在死牢中依依訣別。郭槐表示對包拯毫無怨言,並把壹切都罪過都歸到自己身上,求包拯對劉妃從寬發落。包拯答應郭槐後含淚鍘了郭槐。李妃身穿太後服飾去見劉妃。劉妃驚恐萬分,下跪求饒。李妃把劉妃逐出皇宮永世不得相見。劉妃削發為尼,青燈古佛,郁郁了卻殘生。`