包拯在考察民情过程中,遇到一位喊冤的瞎眼老太太,就此揭开了宋宫内一段尘封多年的往事。
二十年前,皇帝爱妃李娘娘身怀六甲,因担心李娘娘生下儿子母凭子贵,刘娘娘串通大太监郭槐在李娘娘生下孩子后用一只狸猫将孩子偷偷换了出来,并命令丫鬟寇珠将孩子扔到河里。不忍下手的寇珠遇到被派去太监陈林,两人深知事情重大,商量将孩子救出宫去。
李娘娘因生下怪物被打入冷宫,一晃十年过去了,李娘娘的孩子早已被刘娘娘收养并被立为太子。太子误入冷宫遇到了李娘娘,引起了刘娘娘的怀疑。她担心当年的丑事被揭穿,便欺骗皇帝称太子自从误入冷宫便身患大病,要求将冷宫连同李娘娘一起烧为灰烬。因害怕泄密,郭槐害死了寇珠。
从皇宫逃出后的李娘娘隐姓埋名,转眼间又是十年过去了。太子当上了皇帝,而她也已经是风烛残年的瞎老太太,她知道能为自己申冤的只有包大人。
包拯向陈林求证,陈林道出事情真相。两人设计在正月十五皇帝观花灯时借用典故向皇帝透露这个惊天机密。皇帝得知后龙颜大怒,命包拯立即着手调查真相。
包拯将郭槐囚禁在开封府,但老奸巨猾的郭槐却始终不肯认罪。无奈之下包拯和狱官合作上演了一出戏,将开封府布置成阴曹76地府,并由丫鬟假扮寇珠前来向郭槐索命。郭槐深知自己脱离不了干系,当即写下证词,承认自己当年与刘娘娘合谋作出了狸猫换太子的事情。
事情真相大白,怒不可遏的皇帝赐给刘娘娘一条白绫让她自行了断。沉冤多年的李娘娘被重新接回了皇宫。