泾原路经略安抚招讨使王沿闻讯急派副总管葛怀敏等人率军增援刘燔堡。初九日,葛怀敏进抵瓦亭寨(今固原以北,葫芦河以西),与夏军作战。临行时,王沿告诫葛怀敏切忌深入,可在第背城(今宁夏固原县南)扎营。葛怀敏不从。二十日,诸宋将云集镇戎军,赵珣建议固守镇戎,待其兵疲而击。怀敏不听,分兵四路出击定川寨,刘湛、沿边都巡检使向进从西水口出兵,泾原路都监赵珣从莲花堡出发,曹英、泾原都监李知和从刘璠堡出发,怀敏本人则从定西堡出兵。二十一日,刘湛行至赵福新堡(约今宁夏固原西北),即遭夏军截击,退守向家峡(赵福新堡附近)。夏兵绕出背后,出击东北隅曹英军,这时突发东北黑风,宋军迎风列阵,一时大乱,曹英面中流矢,堕入城壕沟中。宋军前线失利,后方更无斗志,争相入城,兵马自相践踏,退保寨内。葛怀敏几乎被践踏致死,幸由兵士抬回寨中,昏迷许久才醒来。元昊下令断其水源,以饥渴宋军。
二十二日清晨,怀敏下令突围,以曹英、赵询为先锋,刘贺、许思纯为左右翼,李知和、王保、王文等殿后,奔趋东南的镇戎军(今宁夏固原),驰行二百里,至长城壕(固原西北与隆德接界),西夏军已断其后路,以逸待劳,从四面冲杀过来。怀敏与部将曹英,李知和、赵珣、王保、王文、刘贺等十六位将领战死,宋军九千四百余人近全军覆灭,元昊“长驱抵渭州(今甘肃平凉),幅员六七百里,焚荡庐舍,屠掠民畜而去。”元昊用诏书告谕宋朝关中军民:“朕欲亲临渭水,直据长安!”但西夏另一路遇到宋朝原州(今甘肃镇原)知州景泰的顽强阻击,西夏士兵全军覆灭。李元昊只得罢兵。
宋仁宗庆历四年(1044年),北宋与西夏达成协议。和约规定:西夏向宋称臣,元昊接受宋的封号;宋夏战争中双方所掳掠的将校、士兵、民户不再归还对方,史称“庆历和议”。