赵充国上书说:“陛下之前赐给我诏书,想要派人去告诉罕羌,说大军即将到达,但汉朝不会诛杀罕羌,以此来瓦解他们的阴谋。我因此派幵羌的首领雕库去宣扬天子的至德;罕、幵等部族都听到了陛下的圣明诏令。如今,先零羌的杨玉凭借石山和林木的险阻,等待时机侵扰我们(师古注:指凭借山上的林木和石头来保护自己 ),而罕羌并没有侵犯我们,现在却要放下先零羌,先去攻打罕羌,放过有罪的,却去诛杀无辜的,这是制造一个难题,引发两种危害,这肯定不是陛下原本的计划!我听说兵法上讲:‘进攻力量不足时,防守则会有余。’又说:‘善于作战的人能调动敌人,而不被敌人调动。’(师古注:致人,是引诱敌人并消灭他们;致于人,是被敌人引诱 )现在罕羌想要侵扰敦煌、酒泉,我们应该整顿兵马,训练士兵,等待他们前来。这样我们就能坐等敌人上钩,以逸待劳,这才是取胜之道。现在我担心这两个郡的兵力太少,不足以防守,却还要让他们出兵进攻,这就放弃了引诱敌人的战术,而选择了被敌人牵着走的做法,我认为这样做不合适。先零羌之所以反叛,是因为他们与罕、幵羌解除了仇怨,订立了盟约,但他们心里也担心汉军来了之后,罕、幵羌会背叛他们。我认为他们的计划通常是先去救援罕、幵羌的危急情况,以此来巩固他们的盟约。如果我们先攻打罕羌,先零羌一定会来援助。现在羌人的马匹肥壮,粮食充足,此时进攻恐怕无法对他们造成重大伤害,反而会让先零羌有机会对罕羌施恩,加固他们的盟约,让他们的势力联合起来。羌人联合起来,集结两万多精兵,再胁迫其他弱小的部族,依附他们的人会越来越多,像莫须这样的小部族也不会轻易脱离他们。如果这样,羌人的兵力会越来越多,我们再去诛杀他们,就要花费数倍的力气。我担心国家为此忧虑和负担的时间,会持续十年之久,而不只是两三年。依我的计策,先诛杀先零羌之后,罕、幵等部族不用出兵就能归服。如果先零羌被诛杀后,罕、幵羌还不归服,等到正月再去攻打他们,这既合理,时机也恰当。现在就进兵,我实在看不到有什么好处!”戊申日,赵充国上奏了自己的意见。秋季,七月甲寅日,宣帝下玺书回复,采纳了赵充国的计策。
赵充国于是率军来到先零羌的驻地。羌人因为长期屯聚,已经松懈下来,看到汉军大部队到来,他们丢弃车辆和辎重,想要渡过湟水,但道路狭窄难行;赵充国则率军缓缓追击。有人说:“追击敌人应该迅速,现在行军太慢了。”赵充国说:“这是陷入绝境的敌人,不能逼迫太急。如果我们逼得太急,他们就会回过头来拼命;如果我们放缓追击,他们就会只顾着逃跑。”各位校尉都说:“说得对。”羌人在渡河时,有几百人溺水而死,投降和被斩杀的有五百多人。投降的人带来了羌人的马、牛、羊十多万头,还有四千多辆车。汉军到达罕羌的领地时,赵充国下令军队不得焚烧村落,不得在田中割草放牧。罕羌人听说后,高兴地说:“汉军果然不会攻打我们!”罕羌的首领靡忘派人来说:“希望能回到原来的地方生活。”赵充国将此事上报给朝廷,但还没有得到回复。靡忘亲自前来归降,赵充国赏赐他饮食,然后送他回去,并让他告知部族的人。护军及以下的将领都纷纷反对,说:“这是个反叛的敌人,不能擅自放他回去!”赵充国说:“你们只是为了迎合公文,为自己考虑,并非为国家忠心谋划!”话还没说完,朝廷的玺书就回复了,下令按照赎罪的规定处理靡忘。后来,罕羌果然没有动用武力就归降了。
宣帝下诏让破羌将军、强弩将军前往屯兵之地,在十二月与赵充国的军队会合,一起进攻先零羌。当时,羌人投降的已经有一万多人了,赵充国估计羌人一定会自行崩溃,便打算撤掉骑兵,留下士兵屯田,等待羌人自行衰败。他的奏书还没呈上,就收到了朝廷让他进兵的玺书,赵充国的儿子中郎将赵卬很担心,他派门客劝谏赵充国说:“如果出兵导致军队战败、将领被杀,使国家陷入困境,将军您坚持自己的意见是可以的。但现在只是利益和损失的问题,又有什么值得争论的呢!一旦您的意见不合皇上心意,皇上派绣衣使者来责备您,到时候您自身都难以保全,还怎么顾及国家的安危呢!”赵充国叹息道:“你说的话太不忠诚了!要是当初采纳我的建议,羌人怎么会发展到现在这样!(师古注:意思是如果提前防范,就不会有现在的羌人叛乱 )之前朝廷推举可以先去羌地的人,我推举了辛武贤;丞相和御史又建议派遣义渠安国,结果最终让羌人叛乱的局势更加严重。金城、湟中的粮食