陈家谷战役是宋军在雍熙北伐失败后试图将控制区的百姓内迁,而与收复失土的辽军发生的遭遇战。由于宋军内部意见不一,导致合理的战术建议遭到否决,最终以战败收场。
出兵前,副将杨业建议避免和辽军决战,向应州进军,示意切断辽军后路,迫使辽军退往应州,此时朔州百姓可以撤退到石碣谷,宋军再以强弩守住谷口掩护撤退。而云州百姓在宋军出发前就通知其南撤到应州,与应州百姓一起向南通过大石路撤回代州。此时宋军主力与辽军相持,再派骑兵保护二州百姓撤退,辽军也不敢越过宋军主力攻击撤退的百姓,这样不用决战就可以达到战役目的。但是建议遭到监军王侁反对,他主张直接进攻寰州,与辽军进行决战,击败辽军再掩护百姓撤退,受到另一监军刘文裕的赞同。杨业表示不可行,王侁则激将说杨业莫非有二心,迫使杨业同意进行主力决战,并自请为先锋以明心志。
宋军到达朔州后,辽军也已赶到。杨业敦请主将潘美在陈家谷口布阵,自己作为先锋继续前进。辽军主将耶律斜轸派副将萧挞凛设伏,自己与杨业交战后假装败退,杨业中伏大败。监军王侁派人在高台眺望战况,看到杨业追击辽军,便率兵前去争功,潘美不能阻止王侁,于是一起沿着河边行军二十里,得知杨业战败后又立即撤退而不救援。杨业杀出重围后且战且退,到达陈家谷口只剩淄州刺史王贵和儿子杨延玉等残部百余人,发现潘美已经撤退,伤心欲绝,劝说部下各自逃命,但大家都慷慨赴死,无人逃难。杨业藏匿于树林中,被右皮室详稳耶律奚底射中,坠马被擒。辽军主将耶律斜轸责骂杨业,杨业但称有死而已,又叹息说受皇帝厚恩,本想立功边境以报答,却受奸臣逼迫而战败,没脸苟活人世,于是绝食三天而死。
杨业死后,首级被传往云、应二州,当地宋军弃城而逃。至此,雍熙北伐取得的全部土地百姓被辽军夺回,宋军精锐大量战死,导致宋军战斗力削弱。宋太宗追究战败之责,将潘美连降三级贬为检校太尉,王侁、刘文裕夺官,王侁发配金州,刘文裕发配登州。又追赠杨业检校太尉、大同军节度使,荫补其子供奉官杨延昭为崇仪副使,殿直杨延浦、杨延训为供奉官,杨延瑰、杨延贵、杨延彬为殿直。