攻幽州失败后,宋太宗一直想再举兵收复燕云,以雪高梁河失败之耻。太平兴国八年,契丹圣宗耶律隆绪继位后,因年仅十二岁,由其母萧太后摄政。萧太后名绰,是中国历史上著名的女军事统帅和政治家。她摄政后采取了一系列缓和内部矛盾和阶级矛盾的措施,发展生产,整顿军队,使辽国的国力进一步增强。而宋太宗认为契丹圣宗耶律隆绪年幼,母后专政,宠幸用事,内部不稳,决意乘机再攻契丹,夺取燕云地区。宋攻契丹歧沟关之战经过。
雍熙三正月,宋太宗作出了再次进攻幽州的决策,宋军兵分三路,东路中路于正月出动,西路于二月出动。
三月初,宋军开始进攻,东路宋军连败辽兵,攻占歧沟关涿固安新城等地。辽南京(即幽州)守将耶律休哥在援军未到之前,知寡不敌众,避免与宋军争锋,昼出精锐虚张声势,夜遣轻骑袭扰,暗潜部分兵力设伏宋军侧后,断其粮道,疲惫宋军。
曹彬部据涿州仅十余日,即因粮草不济欲退兵雄州,至白沟。中路军田重进部在飞狐击败辽军,擒辽将大鹏翼,攻占飞狐灵丘蔚州。西路潘美军也击败辽军,先后攻占寰(朔云应)等州。
宋太宗认为曹彬军退军就食是重大失策,严令曹彬率军沿白沟河向米信军靠近,养兵畜锐,待机北进,曹彬部下诸将听说中西两路军连克州县屡战屡胜,因此求功心切,都主张出战。曹彬听信诸将意见,在补充粮食后,与米信引军北渡白沟河,与耶律休哥军对垒。
宋军结方阵,堑地两边而行,向涿州进军。耶律休哥以一部兵力阻击曹军,使之且行且战,行动迟缓,一百里路竞走了二十天。这时正是夏天,途中缺水,曹军士卒困乏不堪。到达涿州后,曹彬得知萧太后和契丹圣宗率军从驼罗口南进,已到达涿州东面五十里处,有会同耶律休哥军钳击宋东路之势。
于是,曹彬命部将卢斌携带城中民众先行向南撤退,亲率主力断后