义渠安国到达羌人地区,召集先零羌各部首领三十多人,将其中最为桀骜狡猾的全都斩首;又放纵军队袭击他们的族人,斩首一千多人。于是归降的羌人以及归义羌侯杨玉等人都十分怨恨愤怒,失去了信任和归向,便劫持裹挟其他弱小部落,背叛汉朝,侵犯边塞,攻打城镇,杀害官吏。义渠安国以骑都尉身份率领三千骑兵驻扎防备羌人;到达浩亹(今青海大通河一带)时,遭到羌人袭击,损失了大量车辆、辎重和兵器。义渠安国率军撤退,到达令居(今甘肃永登西北),将情况上奏朝廷。
此时赵充国已七十多岁,宣帝认为他老了,派丙吉去问他谁可以担任将领。赵充国回答说:“没有比老臣更合适的了!”宣帝又派人问他:“将军估计羌虏情况如何?应当派多少军队?”赵充国说:“百闻不如一见。军事情况难以在远方凭空估计,臣希望急速赶到金城郡(治所在今甘肃兰州西北),实地考察地形后制定作战方略再上报。羌戎不过是个小夷族,违逆天意背叛朝廷,灭亡之日不远了,请陛下将此事交给老臣处理,不必担忧!”宣帝笑着说:“好。”于是调遣大量军队开往金城。夏季,四月,宣帝派遣赵充国率领军队进攻西羌。
六月,东方出现彗星。
赵充国到达金城,等骑兵集结到一万名后,准备渡过黄河,又担心被羌人拦截,便在夜间派出三个分队衔枚(口中衔枚防止出声)先行偷渡,渡河后立即构筑阵地;到天亮时,全军依次全部渡过了河。羌人数十上百的骑兵在汉军附近出没侦察,赵充国说:“我军士兵马匹刚渡河疲惫,不可追击。这些都是骁勇难制的骑兵,恐怕是诱兵。我们打击羌虏的目标是彻底消灭,贪图这点小利不值得!”命令军队不得出击。他派骑兵侦察四望峡(今青海乐都西)中没有羌兵,便在夜间率军推进到落都山(今青海乐都北),召集众校尉司马说:“我知道羌虏不会用兵了!假使他们派几千人扼守四望峡,我军怎么能进得来呢!”
赵充国一向重视远距离侦察敌情,行军必定做好战斗准备,驻扎必定坚固营垒,尤其能保持稳重,爱护士兵,总是先谋划周全然后再作战。于是西进到达西部都尉府(治所在今青海海晏),每天犒劳军士,士兵都愿意为他效力。羌军多次挑战,赵充国坚守不出。汉军抓到俘虏,俘虏供述羌人首领们互相埋怨责备说:“告诉你们不要造反!现在天子派赵将军来了,他年纪八九十了,善于用兵。现在我们想决一死战,还能有机会吗?”当初,罕羌、幵羌的首领靡当儿派他的弟弟雕库来报告都尉说:“先零羌要造反。”过了几天,先零羌果然反叛。雕库部落有不少人在先零羌中,都尉就把雕库扣留作为人质。赵充国认为雕库无罪,便放他回去,让他告诉部落首领:“汉朝大军只诛杀有罪的人,你们要明白地自行区别开来,不要一同被消灭。天子告谕全体羌人:犯法的人如果能互相捕杀,可以免罪,并按功劳大小赏赐钱物;同时将其所捕杀者的妻子、财物全部赏赐给他。”赵充国计划用威信招降罕羌、幵羌以及被胁迫的部落,瓦解羌人的联盟,等到他们疲惫不堪时,再发动攻击。
当时宣帝已征调内地各郡屯守边疆的士兵共计六万人。酒泉太守辛武贤上奏说:“各郡的军队都驻扎在祁连山南防备,北边(指河西走廊北部)空虚,这种形势不能持久。如果等到秋冬才进兵,那是敌人还在境外时的策略。如今敌人朝夕侵扰,当地土地贫瘠气候苦寒,汉朝的马匹不耐过冬。不如在七月上旬携带三十天干粮,分兵从张掖、酒泉两郡出发,联合攻击鲜水(今青海湖)一带的罕羌、幵羌。即使不能将其全部歼灭,只要能夺取他们的牲畜,俘虏他们
天子(汉宣帝)将辛武贤的奏书交给赵充国