在雍熙三年(987)一年之內,宋軍連遭岐溝關、陳家谷和君子館三大慘敗,精銳主力幾乎損失殆盡,朝廷上下一片風聲鶴唳,河北各城池都只能龜縮自保。契丹大軍縱橫馳騁,所到之處如人無人之境。耶律休哥佔領了易州,還一度攻下了深州(今河北深州)、祁州(今河北安國)、德州(今山東德州)等州縣,兵鋒直逼河北重鎮大名府(今河北大名)。他還雄心勃勃地向蕭太后建議:佔領河北全境,與宋朝劃黃河為界。但蕭太后並沒有採納他這個方案,宋朝這才有了難得的喘息之機。
宋太宗面對危局,頭腦終於清醒了下來,他採取了一系列的措施:在政治方面,宋太宗頒布了《契丹攻劫罪己詔》公開向臣民承擔了戰敗的責任,免除河北等遭受戰爭摧殘地區民眾們的賦稅負擔,對陣亡將士、死難民眾都進行優厚的撫恤,重振民心和軍心。他還多次派出使團出使契丹,提出和議,以爭取主動。按照儒家經典的說法,「萬方有罪,在予一人」,「萬方有罪,罪在朕躬」。但在君主專制時代,帝王敢於發布罪已詔,主動承認錯誤和承擔責任,還是需要很大勇氣的,也正因為如此,往往就能收到奇效。
如漢武帝徵和四年(前89)的《輪臺詔》,就是一個十分成功的罪己詔,挽回了人心,為「昭宣中興」做了鋪墊,使西漢統治得以再延續近百年之久。在軍事方面,宋太宗徹底改取戰略防禦的態勢,利用契丹不善於攻城的弱點,加強河北的防禦,特別是重點經營定州、鎮州、高陽關、大名府和澶州等幾個戰略據點,派出大軍駐守,依託堅固的城池,不與契丹在野戰中決勝。在河北東部的關南地區,則利用當地湖泊、水網密布的自然條件,大力開挖河道,興修水田,大量種植水稻和樹木,以此來遏制契丹騎兵的活動。
如此一來,宋朝就在河北建立了完整的防禦體系。此外,宋朝還全力擴充軍力,宋太宗末年,宋軍總數迅速由宋初的不到二十萬人,上升為六十六萬六千餘人,其中禁軍高達三十餘萬,到了宋真宗的時候,總兵力更進一步擴充到九十餘萬人,禁軍五十餘萬人。端拱元年(988)十一月,李繼隆戴罪立功,奮勇拼殺,在唐河(今河北唐縣)大破耶律休哥統率的契丹軍,殲滅契丹一萬五千餘人,繳獲戰馬上萬匹。
第二年,宋將尹繼倫又於唐河北乘著契丹兵開飯的機會,突襲耶律休哥的大營,饒是耶律休哥機警過人,扔下碗筷就跑,還是被奪門而入的宋兵砍傷了胳膊。這兩次唐河大捷,打破了耶律休哥不可戰勝的神話,宋軍則開始走出了雍熙北伐慘敗的陰影。此兩役過後,兩軍重新趨向大致的均勢,終宋太宗一朝,契丹沒有再大舉南下,宋和契丹的對抗,由大規模的戰爭轉化為長期的邊境摩擦和冷戰的狀態。