郭嘉等见龟兹王坚守不出,命军士将投石车运抵土山。见城中士兵云集之处,山上一齐拽动投石车,炮石飞空,往下乱打。人无躲处,城中守兵死者无数。郭嘉思起一计,见东郭土层甚厚,派士兵用铁锹暗打地道,直透往城中。十余日,地道掘成,郭嘉命曹彰所部从地下透城而入。龟兹王无备,被曹彰所部趁夜杀入,不由慌张失措。曹彰所部打开城门,关羽大军杀入城中。龟兹兵皆无备,被关羽军团入城大肆屠杀。龟兹王见事不济,率败兵杀出城去,逃往王城。于路集结败兵,只余半数多。龟兹王使者急赴乌孙王处,求乌孙王出兵:“西域合力,尚无法击败中国大军,若龟兹败灭,乌孙王将步龟兹后尘。今大王起兵攻打西基,则龟兹围解。若大王坐视,龟兹灭国也。龟兹若灭,以大王一国之力,与中国虎狼之师相斗,恐败多胜少。请大王速作决断,以免贻误战机。”乌孙王本精明之人,虽对龟兹王心怀不满,值西域存亡关头,决意出兵。大军未至西基,东郭被攻破消息传来。乌孙王恐关羽主力趁机突袭乌孙王城,命大军撤回,空劳军力。金旋见西域战事,关羽所部兵力薄弱,又派马超、姜维、庞德三将率所部兵支援。此时西域境内三方势力兵数对比为,中国士兵七十五万,乌孙国士兵六十万,龟兹国士兵四十万。援军到达,郭嘉战略、战术安排更加灵活。郭嘉定计,以姜维率五万军防守西基,马超、庞德各带五万轻骑兵骚扰乌孙国境内,牵扯乌孙王大军不能出援。其余大军集结于东郭,约日同击龟兹王城。龟兹王兵力,在王城为三十万,其余十万分屯其余两城。龟兹王城分为二城,原王城在西北,城小墙矮,龟兹国人称为母城。新王城依母城东南仿中国郡城修建,当地人称为子城。子城与母城之间,相隔里余,粮草营房多在母城。龟兹王以腾先为主将,统十万兵驻守母城,自率兵二十万驻守子城,两城守兵遥相呼应。征西军到达龟兹王城,使人打探城中消息,关羽、郭嘉等率诸将登高处观王城地貌。诸事打探清楚,升帐议事。郭嘉道:“王城两城为掎甲之势,遥相呼应。若攻母城则子城守兵扰后方,攻子城则母城守兵扰后方。王城粮草,多屯于母城。攻克母城,则龟兹军必不战自乱。然母城守将腾先,为足智多谋之辈,恐攻城之时士兵多有损折。”关羽道:“我若我大军佯攻子城,诱母城兵出袭扰我军后方,设计断其归路,集歼于城下,则母城防备空虚,我军可乘势而下。”众皆称善,诸将商议细节完毕,关羽、郭嘉分派众将,各自领计而去。
越日,关羽率所部猛攻子城,腾先见关羽营寨防备空虚,率军往攻,施围魏救赵之计。不料进得军营,却见营中空荡荡没有一兵一卒,知道中计,忙命士兵退军。此时,营中埋设震天雷响起,龟兹兵伤亡惨重,魏延、周仓各率伏兵杀出,龟兹兵大败,腾先率败兵退往母城。夏侯淳、夏侯渊两部二十万重骑兵此时却截断归路,将腾先败军紧紧围住。腾先率军左冲右突,不能得出。夏侯淳部将曹洪、诸葛诞率部兵将专击腾先亲兵,腾先见势危急,对众士兵道:“我大军败数已定,各位趁机脱逃,勿回王城,保留我族种苗。”言毕拔剑自刎。腾先一死,其军四散奔逃,逃出者不敢回城,绕城往西部逃去。此时吕布、曹彰两军正合力攻打母城,母城此时只有守军二万,腾先亦已出城。兵力薄弱,军无主将,未几时便被攻破。二万余守兵只逃出五千余,其余士兵皆战死。母城已下,子城更是危险。合城之兵只有二十余万,腾先死后,诸文武谋略无出众之人,龟兹王集众商议几次,也无妙计。不得已只是固守,但龟兹粮草,大多集于母城,此时子城粮草只能支十余日。龟兹王命邺胡、匈庭守将率军护送粮草,支援王城。吕布部将纪灵获得龟兹王往邺胡送信之人,解见关羽、郭嘉处。关羽问其军中虚实。答曰:“城中粮草只支十余日,令我等往邺胡、匈庭两处催粮。郭嘉曰:“若遣一路军引轻骑,从半路击匈庭护粮之军,断其粮草,趁机攻取匈庭。再使人诈称使者,让邺胡守军尽出,护粮往王城。我军再设伏击之,趁机再下邺胡。龟兹王城只余孤城一座,内无粮草,守军自乱。”关羽曰:“谁人可往?”郭嘉曰:“匈庭合城兵力只有五万,遣吕布所部可也。邺胡兵力与匈庭相仿,马腾军中素有通西域语者,其可破邺胡之兵。”关羽命吕布、马腾两路军马,各按郭嘉密计,抢夺两城粮草,趁机攻取两城。又命魏延、周仓两将各率本部兵马接应。当夜匈庭守将韩猛闻王城危急,率精兵三万,押粮车数千辆,解赴龟兹王城。正走之间,山谷内吕布、廖化阻住前路,高顺、纪灵引军截住去路。韩猛飞马来战,吕布接住厮杀。廖化等三将兴兵便杀,抢得粮车。韩猛抵当不住,拨回马走,吕布马快,飞马追击,刺死韩猛。吕布等集歼其余败兵,然后集结兵力,当夜突袭匈庭,匈庭不备,城中守军兵少,且皆为老弱之兵,被吕布一举破去。马腾遣西域向导扮作龟兹王使者,诱出邺胡守将逢湖结,领兵四万护邺胡粮草连夜赶赴龟兹王城。逢湖结等众刚出邺胡五十余里,马腾伏军尽出,杀尽逢湖结手下士兵,逢湖结得亲兵死战得脱,不敢往邺胡城去,逃往龟兹王城。马腾部抢得粮草,又统兵攻击邺胡城。邺胡城中守军薄弱