十一月六日,遼軍圍攻長城口,翌日,蕭太後與遼聖宗親臨長城口外督戰。宋軍無力支撐,棄城南逃,遭遇耶律斜軫率部阻截。耶律斜軫欲招降宋軍,宋軍不降。遼聖宗由韓德讓率禦帳親騎護衛,親自率兵出征,將不降宋軍斬殺殆盡。
十一月十一日,遼軍圍攻滿城三日後,破城招降宋軍。接著,遼軍又接連大破祁州、新樂、小狼山砦,勢如破竹,宋軍聞之喪膽,望風而逃。
十二月上旬,遼軍主力進逼唐縣之西三十裏地的唐河以北地區,遭到宋軍定州都部署李繼隆、都監袁繼忠所部有力攔截。
遼軍所向無敵,宋軍將士士氣低落。且太宗見遼軍勢威,下令諸軍堅壁清野,勿與之戰。李繼隆部雖攔截遼軍,但軍中將士猶豫不決,欲遵從太宗旨意從事。
軍帳之內,定州都監袁繼忠力排眾議,肅然說道:“遼軍迫近,今城中屯重兵而不能剪滅敵軍,令其長驅深入,侵略他州,此為自安之計可也,然陛下命吾等駐守邊疆,抵禦敵軍,如此一來,陛下任吾等折衝禦侮之用何在?我將身先士卒,死於敵矣!”袁繼忠一番慷慨陳詞,帳中諸將皆熱血沸騰,紛紛表示願率軍出戰,抵禦遼軍。
監軍太監林延壽靜坐一旁,見此情景不禁冷笑:“陛下詔書在此,爾等膽敢抗旨不遵?”
此言一出,諸將麵麵相覷,有心殺賊,奈何皇命在前。諸將心有不甘,皆將目光轉向主將,等待主將表態。
一直沉默不語的定州都部署李繼隆冷眼看向林延壽,暗自沉思。此前君子館一戰中,劉廷讓部陷入重圍,自己違背承諾未去救援,朝野軍中皆對他非議不斷,甚至有指責他為不忠不信、怯敵怕死之輩者。身為大將,豈能遭受如此大辱!心中愧疚,說與誰聽?今遼軍再次壓境,定州城中重兵把守,足可一戰,此乃天賜良機,豈能錯過?
思慮至此,李繼隆慷慨道:“閫外之事,將帥得專其責焉。往年君子館不即刻赴死者,固為今日以報國家耳!”
林延壽等人聞之大驚,大罵李繼隆抗旨不遵。諸將則群情激昂,李繼隆當即率諸將出城迎戰。
遼軍皆善騎射,騎兵鐵蹄所向無敵,然宋軍善騎射者寡,且大宋國內缺少優良戰馬,所以宋遼兩軍對敵之時,宋軍步兵對戰遼軍騎兵,未戰已輸一半。然此次唐河之戰,李繼隆以手下靜塞軍騎兵為先鋒,衝殺遼軍。靜塞軍騎兵本屬易州,被李繼隆收歸自己麾下,其作戰勇猛,率先攻入敵陣,衝垮了遼軍陣形。
遼軍大敗而逃,宋軍乘勝追擊至曹河,斬殺遼軍五千人,俘獲戰馬萬匹。捷報送至開封,群臣相慶,太宗大喜,不但未追究李繼隆抗旨之罪,並且下詔褒獎定州諸將,賞賜豐厚。
唐河一戰,打破遼軍的不敗之勢,重創遼軍,蕭太後班師北還,但仍駐留在宋境之內。
次年,遼統和七年,也即宋端拱二年(989),正月二十一日,蕭太後兵圍易州,遂城宋軍北上來援,卻被蕭太後派出的鐵林軍擊敗,宋軍指揮使五人被擒。不久,遼軍攻破易州,刺史劉墀投降。易州乃是周世宗時收複的三州之一,此次卻再度陷於遼軍,直到一百多年後,宋金兩軍夾擊滅遼,才得以短暫回歸,此是後話。
遼軍此番南征,雖遭遇唐河之敗,損失慘重,但收複易州、涿州兩地,基本消除了河北宋軍對幽州城的直接威脅,可謂戰果輝煌。蕭太後封賞將士,大宴群臣。
幾番大戰之後,宋軍慘敗者居多,宋軍將士對遼軍的畏懼愈發嚴重。雖然太宗依然未放棄收複幽薊的心願,然事實所迫,太宗不得不采取一係列防禦舉措,防止遼軍南侵。為此,宋軍在河北地區增設屯寨,屯兵戍守。邊境屯兵,糧草需從後方調運,因運送輜重的宋軍常常遭到遼軍截擊,所以,為護送輜重安全到達邊境,宋軍往往出動萬人大軍,沿途護送輜重。