田虑带着十几个壮士到了疏勒,劝兜题结交汉朝。兜题不敢得罪汉朝的使者,可是也不愿意结交汉朝。田虑见兜题左右只有几个卫士,就出来吩咐十几个壮士冲进帐篷,拖倒兜题把他绑上。班超料到疏勒人不会帮助兜题的,果然那几个卫士都逃散了。田虑把兜题拖到外边,班超正好赶到。他对疏勒的官员和老百姓说:“龟兹杀了你们的国王,你们怎么不替他报仇,反倒投降敌人呢?”他们说:“我们没有力量,自己正恨着自己呐。”班超说:“我是汉朝的使者,愿意帮你们主持公道。你们可以立自己的国王。”他们就立原来的王子为国王,还要求班超把兜题处死。班超说:“杀了他有什么用呢?不如把他放回去,好叫龟兹知道汉天子是不愿意随便杀人的。”
班超吩咐手下人把兜题松了绑,叫他回去告诉龟兹王不要反对汉朝。兜题连连磕着头说:“我一定劝告大王不再反对。”他向大伙儿拜了几拜就回到龟兹去了。疏勒赶走了敌人,有了自己的国王,都欢天喜地地谢过班超,还请他住在那儿,免得龟兹再去欺负他们。班超派人向窦固报告。窦固就让他留在疏勒。
接着明帝派陈睦为西域都护,耿恭、关宠为校尉,让他们带一些兵马驻扎在车师。
不久北匈奴单于派大将率领两万骑兵进攻车师,杀了车师后王。耿恭招募几千人马打了一仗,杀了几千个匈奴兵。可因为人马太少,他就守住城不再出去。匈奴把城外的水道全堵死,不让一滴水流到城里去。耿恭叫士兵们打井,可是打了十五丈深,还没有水。他们渴得实在没办法,只好喝马尿。后来连马尿也没有了,他们就把马粪榨出汁来作为饮料。耿恭叫士兵们继续往下挖,他自己也像小卒一样拿着筐子不停地搬土。士兵们见大将亲自动手,立即都顿起精神拼命地挖,一定要挖出水来。挖啊,挖啊,挖到一个地层,忽然哗哗哗地涌出泉水来了。全军高兴得连连高呼“万岁”。
耿恭对士兵们说:“先不要把水喝了。只要咱们再熬一下,匈奴就会退去的。”士兵们就都咬着牙,有水也不喝。耿恭命令士兵们把水一桶一桶地往城下倒。匈奴们见了直吐舌头,他们见汉军有水,突然都上马逃走了。
耿恭虽然渡过了这一次的难关,可是要守住西域抵抗匈奴,靠这一点兵力是不够的。果然就在那一年,匈奴兵马一到,焉耆王和龟兹王都反悔了,他们杀了西域都护陈睦,又进攻校尉关宠。接着车师王也反悔了,跟北匈奴联合起来攻打校尉耿恭。关宠上书向汉明帝求救,不料汉明帝死了,汉章帝刚即位。中国有了大丧,汉章帝才十八岁,大臣们大多不主张去救。司徒鲍昱说:“驻扎在西域的将士是朝廷派去的。他们有了急难就把他们扔了,将来谁还肯出去抵抗呢?再说驻扎在西域的兵马才几千,他们都抵抗了这么多日子,可见匈奴的兵力也不怎么强。只要吩咐酒泉和敦煌的两个太守各发两千精兵去帮助关宠、耿恭,他们就可以对付匈奴了。”
于是汉章帝拜酒泉太守段彭为大将军。段彭调张掖、酒泉、敦煌三郡的人马和鄯善的骑兵日夜赶路往车师那边去。因为路远一时不能赶到。耿恭那边的粮食已经吃完了。他们宰了一匹马,挨了几天,后来弄得可以吃的东西都吃完了,耿恭鼓励士兵们说:“上次没有水喝,到底给咱们挖出水来了。咱们得坚持下去!”他们就把皮铠甲、弓弦、皮靴等煮成羹汤凑合着过日子。北单于知道汉兵不能再挨下去,就派使者对耿恭说:“要是肯投降,单于就封将军为王,还把自己的女儿嫁给将军。”耿恭不理他。那个使者就指手画脚地吓唬他说,要是不投降,命就难保了。耿恭把他砍了,还把他的人头挂在城门楼子上。北单于火了,吩咐将士们加紧攻打。耿恭他们正在万分危急的时候,段彭的救兵到了。
段彭的七千多精兵到了车师,连着打了几个胜仗。他们把敌人杀了三千八百多,活捉了三千。北匈奴吓得逃了回去。车师不能抵抗,投降了。段彭救出了关宠,可是没几天关宠害病死了。耿恭这一边的人已经不多,他让当地的士兵都回去,自己只带着二十六个汉兵回来。沿路又死了一半人马,到了玉门关时只有十三个人了。玉门关守将郑众上了个奏章,说耿恭那样的人比得上苏武,司徒鲍昱也这么说。汉章帝就拜耿恭为骑都尉,同他回来的人也都升了官职。
对于是否继续经营西域,刘炟举棋不定,大臣们也有争论。由于确实存在人力和物力上的困难,刘炟诏令滞留西域的汉朝人员回国。
班超接到撤退的诏书,他收拾行装,备好马匹,准备返回久别的祖国。在西域生活多年,他有些依依不舍,西域人民也爱戴和尊敬他。听说班超要回国,疏勒人民惊惶不安,因为班超对付匈奴有办法,班超一走,又要永无宁日了。疏勒都尉抽出长刀满面流泪地对天长叹道:“汉朝使节弃我而去,我国必为匈奴所灭。与其翌日死亡,不如现今魂随汉使!”说罢引刀自刎。
班超虽然也难舍难分,但王命在身只好拨转东行。不久到了于阗国,于阗人民拦道迎接班超,听说他要东归都失声痛哭,就近的人们抱着班超的马腿不让他离开。班超只好上书刘炟请求留在西域。刘炟同意了他的请求。
在西域诸国中,乌孙最为强大,刘炟又派遣使臣前往乌孙。乌孙国王非常高兴,于建初八年派遣使者回访汉朝表示友好。于是刘炟提升班超为将兵长史,授予他代表东汉政府在西域行事的权力。