从1093到1095年,宋廷重新调动陕西前沿的人事任命。吕惠卿这个新党强硬派成员当上鄜延路经略使,而孙路继承王安礼任河东路经略使一'职。王安礼乃王安石幼弟,但反对用兵。武将王文郁取替范纯粹成为熙河路经略使,而章楶则出任泾原路经略使。开封方面,朝廷罢免韩忠彦及其余旧党支持者,战时政府和战区指挥体系重新建立。
1096年,鄜延路经略使吕惠卿在上任的五十日内,组织了十四次小规模的出击行动,激起党项人全力反扑。1096年末的延安一役,双方动员大量军队。西夏集结五十万大军,意图击溃鄜延路所有军事力量。吕惠卿得到来自开封的增援,将部队改组为二十二个军。他保留一半部队在延州城内^当时延州改称延安府,其余部队则驻扎在延安府附近。党项人沿乌延口翻越横山,分成三个纵队,东路威胁青涧城,中路包围塞门寨、龙安寨和金明寨。西路方面,党项人组织迅速而大纵深的突击行动,一日之间,由边境顺宁寨通过安远寨,杀进距延安府五十里以外的地方。侦察到宋军的密集调动,西夏军筑起十一座堡寨对付十一路宋军。在延安府中,经略使吕惠卿亲自指挥一切调动事宜,协调各路军马。无法在短短数天的包围战中攻下延安府,考虑到会有被吕惠卿切断归路的潜在危险,又不能再往南面掠夺宋土,西夏军遂转移到金明寨,经过两天的包围,终于攻陷金明寨,消灭二千八百名宋军,只有五人幸存。西夏军随后撤退,吕惠卿派部队追截,但给龙安城附近的党项骑兵击退。是场战役以西夏的战术胜利而结束。然而,动员五十万人,只杀死少于三千名宋军,战果无疑微不足道。
与此同时,熙河路经略司着手构筑女遮谷的防御工事,保护贯通通远军到兰州的唯一路线。早于1095年,哲宗便下令在这个以前西夏驻军的地点建筑堡寨。正当西夏集中兵力攻击鄜延路时,熙河路经略司便趁机在这座山谷筑起堡寨,伸展至熙河边界的右翼。同时,一支泾原部队突袭没烟峡的西夏堡寨,夺取通往天都山的要途。
西夏军入侵鄜延路无功而退后,泾原路经略使章楶加快展开葫芦河攻略,兵临天都山。葫芦河是黄河支流,其河谷是传统丝路,由唐朝内陆城市通往河西走廊的重要通道。石门口位于宋朝边界四十里外,是天都山的大门,西夏称之为「唱歌作乐地」。在天都山的南牟会,有一座西夏宫殿,附近是西夏军点集之处,还有一片盐湖。从1097到1098年,双方为了控制这块土地而艰苦角力。
1097年初,泾原路经略使章楶准备好筑城材料,要求其余各路佯攻,分散西夏军注意力。吕惠卿于是命令一名将官发兵劫掠横山上的洪州。孙路则派遣部队短暂占领盐州。同时,熙河路经略使钟傅拓展兰州外围,在黄河北岸建筑金城关,威胁西夏的右厢兵。尽管宋军多番努力,西夏结果仍然动员了十二个监军司中的其中六个,分别为甘州、右厢、卓罗、韦州、中寨和天都山,全归名将妹勒都逋统率,对付宋军泾原路的作战单位。两军在近石门口的地方交战。战前,章楶获得熙河、环庆和秦凤三路的支援。熙河将姚雄撃溃一个西夏部队,斩首三千,俘虏三万余。可是,折可适在没烟峡追撃西夏军队途中损失二千名熙河士兵。有别于永乐城之惨败,宋军在建筑石门城和好水河的二十二天工程中,能进一步控制附近有利地带。竣工后,这两座城名为平夏城和灵平寨,隐含消灭西夏王朝之意。
平夏城的竣工标志着一连串宋军攻击的开始。由于西夏军的败退,陕西五路收复自1085年后失去的堡寨,并在西夏境内构筑一系列防御工事。河东路于1096年初取回葭芦寨,于1098年在该寨西北二十里筑起神泉寨。三交堡落成后,与上述两寨在那里形成一道三角防线。
鄜延路也巩固无定河和大理河的防衞,占领横山东部的战略地带。1097年初,吕惠卿加强乌延口的防衞,此乃沈括、种谔于1082年进筑横山时选定的原址,也是两年前党项人入侵延安府的要途。当西夏主力在石门口与泾原部队交战时,吕惠卿把握战略时机,赶快筑成浮图寨。浮图寨和其余两座于大理河的堡寨竣工后,宋军便控制了无定河和大理河的分水岭。是年秋,吕惠卿在乌延口以外筑起另一座堡寨,以威胁西夏人的农耕地。翌年,吕惠卿发动大规模进攻,命令王愍越境攻击。基于西夏人的抵抗大为削弱,宋军士气高昂。吕惠卿分别委派第六将筑米脂寨,第二、四将筑开光寨。另外,第三、五和七将则掩护进筑那娘。他保证给予厢军、保甲以及民夫额外的薪金、津贴和奖赏,令每项工程得以于五六日间火速完成。结果,鄜延路总共完成九座堡寨,修直连接麟府路的边界。某些工程如乌延口、开光岭和浮图寨,曾经是以前种谔规划进筑之处。换句话说,四分一世纪之前,种谔在罗兀战役的任务,现由吕惠卿完成。
环庆路则取得白马川往灵州的据点,筑起兴平城,作为攻击西夏韦州监军司的踏脚石。同时,孙路下令在山峦高地筑起横山城。工事完成后,党项部落渐次投降。于是,孙路只需动员厢军和保甲便可,不用徵集民兵或雇募苦工。
泾原路在平夏城近郊筑起四座城,全面控制石门城和葫芦河西岸。接着,章楶在那里驻扎第十一将,保护这个关出部。他又推荐其手下、能干的将领郭成担任那里的指挥官。其后,章楶下令部队推进六十里,在没烟峡的进出口筑起两座堡寨,堵塞西夏从天都山入侵的路线。据曾布说,没烟峡以外的旷野有多条小路,党项骑兵就是沿此进行突袭。为了解决安全问题,章楶编成第十二将,提拔爱将折可适为将官。为避免在不利的条件下与宋军决战,西夏人陆续将军队及部落迁移往内陆。
在熙河路前线,钟傅保持积极的姿态,加强兰州及其近郊的防线,从西南逐渐逼近天都山。1097年夏,钟傅在青石峡筑城。这一条要道掩护着熙河路的补给线,并迳抵西夏剡子山监军司。1098年初,钟傅进一步完成会宁关的工事,宋境亦得以向东扩展,穿越天都山,连接平夏城。
和永乐城之战一样,西夏军把反击矛头对准最要害的平夏城。1098年夏,枢密院收到环庆路关于党项人大举动员的报吿。在彻夜的讨论中,曾布衷吿章惇下令前线戒备。这份报吿证实了之前一名降宋西夏官员的口供,声言西夏不会集中「实衮都宗托卜德」,意谓包围及攻击城寨。相反,这名降官透露西夏会渗透和剽掠近郊地区。枢密院不予轻信,发出了《划一指挥》共七项,强调弹性防御和各路之间的协调。这份文件还包括训练、纪律、计划、后勤和工事等九项「检举指挥」。随着军事冲突的危险状况渐次升级,宋人加快防守准备。西夏表面上拜托回鶄使节团转达和平意愿,但宋廷考虑到并不清楚党项人的真正打算,对外交斡旋所起的作用没有寄予厚望。初冬,枢密院收到泾原路另一份报吿,据一名逃俘所说,一支庞大惊人的西夏军队,为数多达一百五十万,在天都山以北安营,距离没烟峡宋军堡寨仅五十里。其后,有报吿指这支军队沿泾原路边界推进超过十天,动向未明。正当枢密院衡量党项突然转换攻击目标的可能性,西夏军向平夏城展开空前猛烈的攻势。
西夏进行第二次平夏城之役,是一场组织完善的战役。一如以往,他们在战争中表现出灵活性和高度智慧。梁太后挟着小皇帝乾顺亲自指挥是次战役,声称动员超过百万大军,实际上只是四十万,向没烟峡推进。纵使动员如此庞大的军事力量,党项人直到最后关头仍小心地隐瞒作战目标。战前,梁太后及众将一起标绘平夏城的位置,认为「平夏视诸垒最大,郭成最知兵」,若果西夏攻占平夏城,则其余堡寨的抵抗会相继瓦解。为达成如斯重任,六路统军嵬名阿埋负责包围平夏城,西寿监军司妹勒都逋则率领拦截部队对付宋朝援军。据蕃将李阿雅布说,这两名西夏监军非常勇悍、能干和精明。在他们的指挥下,西夏军队同时包围六座新近建成的宋军堡寨,四座在平夏城附近,其余两座在没烟峡,日夜努力不懈地攻击平夏城。在十三天的包围中,西夏运用了不同战术,包括挖地道、冲绷和楼车。
然而,宋朝的弹性防御战略足以抵销党项的攻击。陕西前沿守军的左右翼即时回应。河东路深入西夏反击,熙河路副经略使王愍则攻击卓罗监军司和右厢监军司,共杀死一千三百名士兵,俘获二万四千头牛只。他亦焚烧方圆七百里以内的农舍和仓库。在获悉平夏城之围以前,枢密院已命令环庆路派兵一万,内含三千骑,开往泾原路,作为战略预备队,由种谔之子、将官种朴率领。同时,秦凤路也派遣了数量与之相当的军队。确定党项的目标是平夏城后,开封催促环庆和秦凤两路给予更多支援。一支由副都部署王恩统领的诸路联军在泾原路登场,向平夏城进发。由于双方都全面动员,一场决定性战役已无可避免。
宋军前沿的第十一和十二将只得二万人,在郭成和折可适的领导下顽强抵抗。他们在城墙上用神臂弓射击和在夜间扰敌。心据王之望所载,当平夏城处于危急存亡之际,泾原路的军官郭祖德,也是郭成的义兄^建议不顾任何代价以解平夏城之围。副都部署王恩和将官姚雄、姚古都一致赞成,但种朴提议延迟反击。他要求郭祖德侦察敌方兵力,并向在场所有人详细地解释:「夫婴孤抗剧贼,所持以坚士心者,援兵矣。今吾众寡不敌,战而胜,围未必解。不幸小挫,贼驱所获示城市,则士卒解体,谁与守者?且郭公在,城何忧?」
正如种朴所预测,郭成和城内第十一将的四至五千名士兵,造成西夏军大量伤亡。随着天气渐渐转坏,某一晚,党项的楼车遭到强风摧毁。加上西夏军队的口粮已消耗殆尽,看到军队陷于恐慌和无秩序的状态,梁太后痛哭不已,全军在子夜时份撤退。正当西夏军士气下降之际,姚雄和姚古展开反击,派一支伏兵重创敌军。后来,人们问及这个成功的防御心得时,郭成表示他唯一忧虑是救援部队可能过早到来。种朴和郭成之言,解释了章楶的防御战术原则:「大抵战兵在外,则守兵乃敢坚壁。」
西夏军撤退不久,章楶下令第十一和十二将以骑兵展开快速反击,并增援郭成和折可适骑兵一万。他们将部队分成六个纵队,渗入天都山。受到之前章楶四度越境「浅攻」所欺骗,西夏六路统军嵬名阿埋、西寿监军司妹勒都逋并未预期到宋军骑兵竟然深入攻击。宋军突然杀到,令正在举行猎后宴会的两位西夏监军束手就擒,「俘馘三千余,获牛羊不啻十万」。同时,宋军蕃将李忠杰也组织骑兵渗入剡子山,袭击卓罗监军司的大本营,统军仁多保忠仅以身免。对于是次辉煌胜利,哲宗心满意足,接受百官祝贺,并厚赏曾布、章楶以及两位将官。郭成罕有地晋升为雄州防御使,折可适为诧州防御使。此外,哲宗命令章楶将这两名西夏将领套上伽锁,用囚车送往开封。章楶以两人具情报价值,恳求皇恩大赦,收归旗下。
宋朝的军事胜利带来国际回响,西夏三度请求契丹军事介入。不久,辽国使者抵达开封,促请即时停战。随着形势转变,大辽干预宋夏战争的潜在动机表面化起来,宋朝灭掉西夏并不符合契丹的战略利益。进行正式调停之前,辽使透露这次斡旋乃监于西夏的危急情况,要求和解。辽廷的有关决策过程没有清楚记录,但据一些零星资料显示,似乎是一个三重政策。第一,辽国似乎为促使和平实现,密谋对付西夏强硬派。据宋人谍报,辽道宗不单拒绝西夏军事介入的要求,还派使者毒死被视为好战成癖的战争发动者梁太后。结果,乾顺恢复亲政,主导和平谈判。第二,辽国催促宋朝放弃并归还所有占领的土地、堡寨和州军予西夏,「休退兵马,还复疆土」,以突出大辽在两国之上的优越地位。第三,契丹皇帝似乎运用了武装规劝政策。他在接近宋境代州的地方巡狩。宋朝情报指,辽营距雁门关以北只有五至七里。
针对这样的形势,开封存在两派意见。宰相章惇建议不用理会契丹的调停,无论是战争抑或和平,应由宋朝决定。「夏国作过未已,北使虽来劝和,亦须讨伐,若能服罪听命,虽北朝不来劝和,亦自当听许。」枢密使曾布和鄜延路经略使吕惠卿则认为,宋朝应着眼于从西夏身上得到实际利益,不应进一步破坏宋辽关系。伊始,章惇的建议似乎较具影响力。经过哲宗与章惇、曾布及其余高级官员的广泛讨论,朝廷修正立场,允许:「夏国罪恶深重,虽遣使谢罪,未当开纳。以北朝遣使劝和之故,令边臣与之商量,若至诚服罪听命,相度许以自新。」然而,宋逼澄清辽夏关系有别于宋夏关系,坚持宋是西夏的宗主国。诚如国书所述,辽和西夏是父与子婿的关系,宋和西夏则是统治者与子民的关系。宋朝惩罚子民并不意味着与辽国对立。而且,国书宣称所有西夏土地都是由宋太宗和宋真宗授予李继迁的中国领土。所以,如果西夏不打算投降,中国仍保留收回统治权的最终权力。又指出夏人反覆无常的态度,「一面修贡,一面犯边」。更重要的是,国书道出准备战争作为战略取向,并非宋朝所创。相反,辽兴宗曾明确地用以对付西夏的侵略,「元昊纵其凶党,扰我亲隣,属友爱之攸深,在荡平之亦可」,而宋朝只不过仿效前者。最后,国书承诺谈判。在逗留开封三十五天之后,辽国使者接受国书而回。同时,宋朝促请西夏呈上谢罪书和交还两名战犯珪布默玛和凌吉讹裕,作为换取和平的必要条件。在西夏未履行这些要求之前,宋军加快进行横山和天都山的防御工事。
正当西夏兵败平夏城,宋朝全面占据横山和天都山。东路的鄜延路建筑暖泉寨,距离米脂寨东北四十五里。同时,河东路在黄河西岸建置了四座堡寨,加强对横山的控制。1099年夏,宋朝动员超过十万大军,十天之内筑成另外八座堡寨。结果,鄜延、河东和麟府三路连成一道新防线,沿横山绵延超过三百里,将党项人驱赶到沙漠地带。为巩固对新占领地的控制,宋朝在葭芦寨设立晋宁军。此外,环庆路经略司在横山兴建三座重要堡寨外,另于沙漠边缘、距离前西夏韦州监军司仅十里的地方筑了一寨。值得注意的是,从1038年起,宋朝占据原属白豹城和金汤城控制的地带,这两座堡寨牢牢地楔入鄜延和环庆两路之间。完成两座堡寨的工事后,朝廷决定沿用其名,以为纪念1041年范仲淹关于收复该两座堡寨的初步构想,首次揭开了宋夏争夺横山的序幕。
同时,泾原路扩张边面,由平夏城以北,伸延到西夏行宫南牟会的原址,设立天都山的指挥部于西安州。西安州距熙河路通会堡仅五十里,边面连接,而西夏天都山监军司自此失去了所据的地盘。据方勺和韩滤说,占领附近的盐池以后,宋朝每月出产的盐值达十四万贯,足以应付熙河路部份地区的支出。1099年秋,泾原和熙河两路完成会州及其余三座堡寨的工事,重新确认从兰州经黄河到会州,再沿天都山北峦穿过没烟峡,最后抵达平夏城的领土。1099年秋,西夏遣使谢罪,其谢表用辞谦卑。1099年底,双方终于重归和平,宋夏新疆界确立。《宋史》着者评说:「夏自平夏之败,不复能军,屡请命乞和。哲宗亦为之寝兵。楶立边功,为西方最。」足以标志着哲宗一朝在外交和军事上的成就。