清明時節,汴水河解凍,兩浙路的糧船紛紛駛入北宋國都東京城,也就是今日的開封。東京城作為天下的中心,朝廷下令自即刻起,全城歡慶七日,共賀佳節。城內熱鬧非凡,鼓樂齊鳴,燈火輝煌,汴河兩岸商賈如雲,商品繁多,令人眼花繚亂。百姓紛紛湧上街頭,賞花燈、祈福許願,更有泛舟河上,享受兩岸美景者。
大理寺貼書吏趙不尤無心欣賞美景,匆匆趕往汴河虹橋,與家人在此約定共賞煙火。同時,翰林圖畫院待詔也在橋上尋找創作靈感,他被人潮擠得踉蹌,幸得趙不尤及時相助。趙不尤偶然間看到張擇端的畫作,直言其缺乏靈魂,並請求將自己的家人畫入畫中。隨後,趙不尤一家齊聚橋上,共賞煙火盛宴。
溫悅乘船而來,她容顏俏麗,身姿曼妙,在煙火的映襯下更顯動人。趙不尤遠遠望見妻子,呼喚她上橋共賞。溫悅以紙傘手藝為生,剛送完貨歸來。趙不尤將兒子趙墨兒製作的燈籠交給溫悅,點燃後放飛升空,一家人共同許願。溫悅最大的願望是在京城購置一處大宅,趙不尤誓言將更加努力,實現妻子的心願。
然而,好景不長,溫悅因接了太府寺的大單而遭到開封府左軍巡判甘亮的欺壓。甘亮聽聞溫悅接單,親自上門收賬,嚇得客戶逃跑。溫悅不願與甘亮糾纏,早早備下銀兩,但甘亮卻得寸進尺,對溫悅手腳。趙不尤得知此事後,匆匆趕回家中,卻遭到甘亮的拳打腳踢,傘鋪也被砸得一片狼藉。
趙不尤不顧傷痛,帶著溫悅前往宋家橋瓦子看戲,以慶祝他們相識十五週年。在戲台,溫悅收到一張寫有「匕」字的紙條,認出是江南水匪的暗號,便跟隨送信的小女孩離去。趙不尤發現妻子失踪,焦急尋找。溫悅被甘亮堵在戲班倉庫,受到調戲和威脅。在絕望中,溫悅拔下發簪刺死了甘亮。
趙不尤得知溫悅的去向後趕來,發現甘亮已死。為了保護妻子,趙不尤將甘亮的屍體藏在戲班的人頭道具中。戲班人將道具推至後台,趙不尤趁機將屍體轉移,並混入戲台。在混亂中,他暗示溫悅跟隨自己離開。開封府左軍推司萬福和巡使顧震得知甘亮失蹤的消息後趕來圍捕,但一無所獲。最終,趙不尤和溫悅將甘亮的屍體綁在小船底部,埋在樹林中。
夜深人靜時,趙不尤對溫悅的殺人手法產生疑惑。溫悅一早出門,趙不尤尾隨其後,卻被張擇端攔住商討畫作。溫悅趁機消失在人群中。顧震和萬福先後來到虹橋,張擇端在茶館作畫。此時,一艘大帆船駛至虹橋下,因船速過快,桅杆未及時降下,導致船身橫在橋下。突然一聲巨響,橋兩邊湧起滾滾濃霧,待濃霧散去,天邊出現五彩祥雲,百姓們歡呼雀躍。然而,橋上卻飄下多具屍體,令人驚駭。