但席卷阿富汗并非顺利,阿富汗复杂的地形和气候阻碍了蒙古骑兵马蹄的速度,从兴都库什山脉到帕罗帕米苏斯山脉,这条山脉连绵不断形成了天然的屏障,突破这条屏障就会直通巴克特里亚纳山区和阿富汗中部山区的交接点——巴米扬。这是一座极具战略地位的城市,也是一个充满悠久历史的地方,其中著名的巴米扬大佛更是闻名于世。
成吉思汗在攻打巴米扬附近的重镇范延堡时付出了巨大的代价,在双方激战中,成吉思汗的爱孙察合台之子篾惕干中箭身亡。为孙报仇心切,当日下令攻城并下令:不取任何俘虏,不取任何战利品,屠尽所有有生命者……蒙古军队严格的执行命令,将范延堡变成了死亡之城,并把该城取名为“卯危八里”(意为歹城)。范延堡所在的查里戈尔戈高地至今仍荒芜凄凉。
成吉思汗为快速攻陷哥疾宁城先派失吉忽秃忽、帖克扯克、木勒合儿等将领追讨扎兰丁,初战因帖克扯克的轻敌导致手中1000多名蒙古骑兵被扎兰丁打败,帖克扯克和米勒合儿带领少数人艰难突围成功,撤回失吉忽秃忽的营地重新部署进攻方案。
最后两军在八鲁湾川(今阿富汗查里卡东北,是通往哥疾宁和可不里去的道路上的枢纽点)进行激战,扎兰丁命将领汗-灭里指挥右翼军,命赛甫丁-灭里-阿黑剌思指挥左翼军,自己亲自指挥中军,在这次战役中扎兰丁展现出了良好的军事素养和指挥才能,扎兰丁知晓蒙古骑兵的厉害,于是在沿途挖下深坑并将蒙古骑兵引入沼泽地,成功限制了蒙古骑兵的机动性。同时,扎兰丁派出军队迂回到敌军后方,切断了蒙古军的退路。蒙古军伤亡很大,损失过半。这一战是成吉思汗西征史上损失最惨重的一战。但是扎兰丁的部下为了争夺战利品时发生争执,部分将领离去,扎兰丁势单力薄,独自退守哥疾宁城(今阿富汗的加兹尼)。
成吉思汗闻之十分震怒,但同时对扎兰丁也开始重视谨慎起来。当成吉思汗率军来到哥疾宁城时,札兰丁早已离开该城,向申河(今印度河)方向逃遁,企图在北印度建立据点,继续抵抗蒙古军,以收复失地。
成吉思汗命窝阔台镇守哥疾宁,亲率大军追击札兰丁。于1221年10月,两军在申河北岸相遇,蒙古大军从向辛河三面围攻,将扎兰丁包围起来。蒙古军首先突破了扎兰丁的右翼,右翼统将汗-灭里在突围途中被蒙古军设杀。其后左翼军队也被攻破,此时札兰丁的六七万大军全部覆没,扎兰丁也如困兽,自己纵马入河,游至对岸,上岸后收集50多名残兵,逃向印度的德里。
1221年冬,成吉思汗在不牙迦图儿驻营,休整部队。第二年春,派八剌和朵耳拜两人带着2万军队继续追击扎兰丁,一直追到印度中部,其中接连攻陷必牙堡、木勒丹、白沙瓦、马里克弗耳等城市,但一直找不到扎兰丁的踪迹,再加上时值炎夏,难以适应北印度的气候条件,就于1223年撤出印度,在巴鲁安与成吉思汗会师。
1223年9月,成吉思汗渡阿姆河,十月下诏班师。1224年到也儿的石河(额尔齐斯河)驻夏,1225年二月回到阔别6年之久的土拉河哈剌和林营地。
前文所提到1220年摩诃末逃跑时,成吉思汗派哲别和速不台一路追击。同年秋攻破阿哲儿拜占(今阿塞拜疆共和国),翌年秋,侵入谷儿只(今格鲁吉亚),击败谷儿只王阔儿吉·剌沙。随即转战高加索并侵入钦察草原(波罗赤草原),攻克克里木,占领速答黑城(即俄萨波罗什),最后在迦勒迦河之战攻破斡罗思和钦察联军。1223年冬,哲别和速不台率军东返,但是在班师回国途中成吉思汗四大名将之一为成吉思汗立下汗马功劳的哲别不幸病故于咸海西里境内。速不台大将率蒙古军到原乃蛮部境内主力军会合。1225年成吉思汗西征结束。
这次长达6年之久的西征,蒙古军的足迹南踏印度,西至伊拉克、阿塞拜疆、黑海北岸,北达斡罗斯的基辅。使前所未有的灾难落到了被征服的国家的人民群众身上,他们大肆屠杀被征服地区的人民,并破坏城市和建筑,毁灭了该地区的文明和生产力,阻碍了被征服地区的发展和进步,这种毁灭性的灾难是无法想象的。
但战争好比一把双刃剑,蒙古大军的西征改变了当时的世界格局,战后为了加强对征服地区的管理,成吉思汗将西征途中攻陷的地区分封给其三子:术赤、察合台、窝阔台。这些封地后来成为金帐汗国、察合台汗国、窝阔台汗国。 注:1224年,扎兰丁重新回到波斯地区,重建花剌子模城,建都于帖必力思(今伊朗大不里士)1229年窝阔台即位后,派大将拔都和绰儿马率领3万军队去攻打重建的花剌子模国。1231年8月15日逃亡中的扎兰丁死于迪亚别克尔山中。