臺西北)。當時城中兵少,形勢危急。耿恭親自登城,指揮作戰。他讓部下把毒藥塗到箭鏃上,向匈奴兵喊話:“漢家箭神,其中瘡者必有異。”喊完,用強弩發射毒箭。匈奴兵中箭者,創口都因毒熱而迅速潰爛。於是,大驚失色。正逢天降暴雨,耿恭乘風雨大作之際,縱兵出城,猛攻敵陣,大獲全勝。匈奴兵震恐,紛紛說:“漢兵神,真可畏也!”於是,引兵而去。
耿恭料匈奴定會再來,便於五月選定城傍有澗水流過的疏勒城(今新疆喀什)據以固守。七月,匈奴兵又來進攻,耿恭招募數千兵勇直闖敵陣,匈奴失利,於是,便在疏勒城下紮營,斷絕澗泉之水。耿恭城中缺水,命將士掘井。但掘至十五丈深,仍不見水。將士乾渴不堪,連馬糞汁都擠出來喝了。耿恭見狀,仰天長嘆道:“聞昔貳師將軍(即李廣利)拔佩刀刺山,飛泉湧出;今漢德神明,豈有窮哉。”於是,整頓衣裳,對井再拜,為將吏們祈禱。不一會,飛泉湧出,眾軍喜悅無極,歡騰雀躍,山呼萬歲。耿恭軍將士在城上向下揚水給匈奴看,匈奴頗感意外,以為漢軍有神明相助,撤兵而去。
當時,焉耆、龜茲聯合,殺死了漢西域都護陳睦,北匈奴在柳中包圍了關寵。十一月,明帝死,救兵不至,車師國又背叛漢朝,與匈奴合兵進攻耿恭。耿恭激勵將士,奮勇拒敵。車師后王夫人的祖輩是漢人,因而常悄悄地給耿恭通報軍情,並私下供給漢軍糧餉。無奈杯水車薪,無濟於事。數月之後,漢兵糧食用完,陷入困境,於是煮鎧弩食其筋革。耿恭與士兵推誠同死生,因而全城上下,協力同心,決心死守城邑。但由於缺乏糧草,軍士漸漸死亡,只剩了幾十人。單于知道耿恭困頓不堪,想招降他,派使者對他說:“若降者,當封為白屋王,妻以女子。”耿恭先假意應允,將單于使者誘上城來,親手將其殺死,炙於城上,使者官屬望見,號哭而去。單于大怒,增兵圍城,但始終未能攻下。
關寵剛被圍時,上書朝廷,請求派兵來救。適逢明帝已死,章帝即位,得到奏章,發下公卿計議。司空第五倫認為不宜出兵救援。司徒鮑昱說:“朝廷派人到危難之地,卻在關鍵時刻拋棄了他們。這樣一來,對外,會助長敵對勢力放憚無忌的氣焰,對內則會損害忠亮守節之臣。以後邊疆無事則已,倘若一時有警,匈奴再興兵犯境,你還怎麼派人帶兵為將呢?況且耿恭、關寵每人只剩軍吏數十人,匈奴包圍攻擊好多天,尚未攻下。可見他們雖人少勢單,卻盡力報國。應該調發敦煌、酒泉兵力,前往救援。”
章帝依議,遣徵西將軍耿秉屯酒泉,行太守事;派秦彭與謁者王蒙、皇甫援發張掖、酒泉、敦煌三郡及鄯善兵共七千人,於建初元年(76年)正月,到柳中進擊車師,攻交河城,斬首三千八百級,俘虜三千餘人,駝驢馬牛羊三萬七千頭。北匈奴見勢遁逃,車師國又歸降了漢王朝。但關寵業已戰歿,援軍諸將見此便欲棄耿恭回師。先前耿恭曾遣所部軍吏範羌回敦煌領取軍士寒衣,所以這次出征也在軍中。此時諸將欲退,範羌抵死不從。諸將不敢前進,無奈只得分兵兩千給範羌營救耿恭。範羌從天山北道進軍,遇大雪深丈餘。歷盡艱辛才到達疏勒城下。城中聽到兵馬聲,以為匈奴攻城。大驚,準備拒戰。範羌在城下大呼:“我乃範羌,朝廷遣軍迎校尉耳。”城中皆呼萬歲。開門,見援軍相與痛哭。此時,城中僅餘二十六人。
第二天,耿恭等東歸。沿途,敵兵追趕騷擾,漢軍且戰且行。耿恭的人馬,從疏勒出發時尚有二十六人,由於將士忍飢挨餓,身體孱弱,一路上,多有死者,到玉門關時,僅剩了十三人,而且衣服洞破襤褸,形容憔悴枯槁。
中郎將鄭眾安排耿恭等人洗沐,更換衣服。並上奏章給皇帝,希望表彰耿恭:“耿恭以單兵固守孤城,當匈奴之嚰,對數萬之觽,連月踰年,心力困盡。鑿山為井,煮弩為