顺利攻占大理,完成大迂回包抄后,蒙哥汗立即发起进攻。宝佑六年(1258年),蒙军分四路侵宋:塔察儿攻鄂州,后因失利由忽必烈取代;兀良合台从云南北上,计划于次年在潭州(今湖南长沙)会师;蒙古军诸翼都元帅也柳干等将攻江淮作为牵制;蒙哥汗亲率十万大军入蜀,计划几路在鄂州会师后再一起杀向杭州。但事实上忽必烈、兀良合台两路很晚才出兵,此战主要就是蒙哥汗亲征四川。进攻四川的蒙军主力分三路入蜀,蒙哥汗自率主力由陇州入大散关,宗王莫哥由洋州入米仓关,万户孛里义由鱼关入沔州。宋廷也诏令京湖制置使马光祖移司峡州,六郡镇抚使向士璧移司绍庆府(今重庆彭水),以策应川军。蒙哥汗刚刚入蜀就在苦竹隘(今四川剑阁以北)遭到顽强抵抗。蒙哥汗亲自督战,各部蒙军轮番进攻,就是无法攻克这个小关。蒙哥汗让俘虏张实进城招降,但张实一进城就与守将杨立一起坚守,把蒙哥汗气得直跺脚,宋廷特授张实和州防御使。但宋军各路援军和粮队均被汪世显之子汪德臣率军击退,最后关内粮尽,裨将赵仲武偷开城门,蒙军才终于进入。

杨立仍率军巷战,壮烈殉国,蒙军抓住张实后将其肢解。突入川内的蒙军在成都平原上势如破竹,驻扎在重庆的四川制置使蒲择之遣统制刘整等率军反攻占领成都的蒙军。但这一次蒙军再不像以前一打就跑,这一次来了就没打算走了,而是奋起反击,宋军败退。蒙军又趁势攻占东、西川连接地遂宁府。现在蒙军占据川西,宋军占据川东,若是以往蒙军不会长期留在川内,但这一次却主动进攻川东。蒲择之屡战屡败,甚至被蒙水军从嘉州(今四川乐山)出发,冲过重庆,进入涪州(今重庆市涪陵区)。宋廷诏以枢密使贾似道为京湖、四川宣抚大使,全面负责长江中上游军事;以保康军节度使吕文德为四川制置使兼湖北安抚使,到重庆接替蒲择之。贾似道是孟珙临终前推荐接替自己的人才,后来成长为权相,被《宋史》列入《奸臣列传》,但他在前期指挥抗蒙确实发挥了很大作用。蒙军进攻川东,首选目标就是当年余玠专门修筑的合州钓鱼城。蒙哥汗先遣使劝降,左领军卫上将军、兴元府驻紥御前诸军都统制兼知合州王坚斩杀来使,以示坚守到底的决心。

蒙哥汗大怒,率大军进围钓鱼城,并遣都元帅纽璘在涪州造浮桥,沿江扎营数十里,以切断四川、京湖两大战区的联系。合州的地势和重庆非常类似,位于嘉陵江、渠江和涪江交汇处,城区如一条长舌被包围在几条大江中,实为半岛地形,只有一条狭长的小路连接陆地。而这个半岛同时也是一座小山,所以防守方自然就占据了居高临下的绝佳射击位置。守军只需堵住连接陆地的小路,攻方如果要从江面上突破,则完全暴露在守军炮口之下,如果从陆路进攻,一条狭长的小路也是绝佳射击区间。所以,合州,包括下游的重庆在古代都是天生形胜之处,极其易守难攻,而余玠事先在城中囤积的大量物资也让王坚有了足够的底气坚守。蒙军从开庆元年(1259年)正月开始攻城,连续数月猛攻没有任何进展。而贾似道移司峡州,吕文德、向士璧等率军猛攻涪州,激战七十余日,终于大败纽璘,冲破涪江浮桥进入重庆。《元史》称纽璘大败吕文德,但又撤兵让其通过,显然是不合理的。吕文德立即率舰队溯嘉陵江而上救援合州,蒙军连忙阻截,但初战不利。

蒙哥汗急调五路万户史天泽率军阻截,史天泽精于水战,将舰队分作两翼,顺流而下,击败吕文德,追击至重庆。虽然外援尽失,但钓鱼城没有任何松动,蒙哥汗虽多次亲自督战,但蒙军损失越来越大。有一次汪德臣率精兵趁夜登上外城,中军统制张珏(jué)率兵仰攻,激战至天明,蒙军不支退下。汪德臣单骑到城下喊话:“王坚!我来是为了存活你一城军民,要早降。”话音未落,一颗炮弹擦着汪德臣的脸蛋飞过,这位蒙军首屈一指的猛将竟然惊吓过度,死了。宋军又发炮摧毁了蒙军攻城器具,天又下起大雨,蒙军只好狼狈退去。按说这种围城战一般是守方缺乏补给,所以被攻方困死,但钓鱼城之战却恰恰相反,围城的蒙军补给开始困难。进入夏季,北方来的人、马都耐不住热,开始生病。宋军在城头扔下大量活鱼、面饼并致书道:“你们烹鲜食饼,再守十年,也不可得。”体现了高度乐观的革命精神。蒙哥汗无奈,七月,留3000兵围钓鱼城,大军转攻重庆。

然而就在这个时刻,蒙哥汗突然驾崩了!是的,席卷亚欧的大蒙古国大汗突然死在了四川合州钓鱼城下!在西方曾流传着一个故事:蒙古西征大军到达里海边时,只见一片汪洋,于是找当地人问路。一位聪明的牧人告诉蒙古人这里就是世界的尽头,于是蒙古人就回去了,西欧就得救了。这个故事既非史实又不符合情理,不过很长一段时间内,确实是西欧人对蒙古人无故突然退兵能作出的唯一解释。而事实的情况是蒙哥汗突然崩于钓鱼城,蒙古诸王为争夺汗位陷入内斗,所以战线全面收缩。后来得知原委,西方人感叹是钓鱼城这座川东小城拯救了欧洲。蒙哥汗崩后,史天泽等护送灵柩北返,路上逢人便杀,杀了两万多人,回到漠北。但蒙军没有放弃成都,而是在成都设都元帅府,与宋军形成了东、西川对峙的局势。微妙的是除江淮战场上用于牵制的蒙军外,兀良合台和忽必烈两路直到蒙哥汗亲率的这一路苦战九个月兵败撤返之后才启动。进攻江淮的蒙军损失很大,遭到名将杜杲之子知扬州杜庶的打击,主帅也柳干战死,大将孛花被俘。蒙哥汗又调割据山东的汉族军阀李璮(tǎn)进攻淮东,宋廷迁杜庶为两淮制置使,又击败李璮。

这一路不但损失惨重,也没有起到牵制作用,许多宋军从两淮调往上游赴援。兀良合台没有直接进攻湖南,而是去进攻安南(今越南北部)。《元史》称蒙军大胜,但兀良合台又撤走,而且从后来宋廷给安南国王升官来看,蒙军应该是吃了败仗。最奇怪的就是忽必烈这一路,忽必烈是后来才接替塔察儿上任的,动作慢得出奇。蒙哥汗七月崩于钓鱼城,忽必烈八月才渡淮,九月才进攻。现在流行的说法是忽必烈九月初一才接到宗王穆哥从合州传来蒙哥汗已崩,要他赶紧回哈剌和林争夺汗位的消息。忽必烈觉得不能直接回去,要先打一场胜仗作为捞取汗位的资本,于是向鄂州进攻。鄂州守军始终坚守,十一月贾似道才得到击毙蒙哥汗的消息,但却并不奋起反击,而是遣使求和,愿意割让长江以北的土地,并称臣纳贡。但忽必烈妻弘吉剌氏派人疾驰至鄂州军前,要求忽必烈必须马上回去,所以使者正在谈判时,忽必烈突然撤兵才没有谈成。此说见于《宋史·贾似道传》,现代史评大多采用以上说法,但很显然这并不是事实。首先,蒙军并未保守蒙哥汗驾崩的消息,远在临安的宋廷在八月十四日便得到消息,忽必烈、贾似道不可能那么晚才得到消息。

其次,即使忽必烈急于北回争夺汗位,也没有必要全军撤退,蒙哥汗一路尚在成都驻军,忽必烈也应该驻军以防宋军邀击。再次,所谓的“鄂州和谈”完全不符合情理,很可能根本就是子虚乌有,是元人编写《宋史》时对抗蒙名将贾似道的污蔑。那么根据时间关系,我们很容易得出结论:忽必烈接替塔察儿后,并未按蒙哥汗的部署进攻京湖路,恰恰是等到蒙哥汗战死后才动兵,兀良合台也在此时才从广西向潭州开进。蒙军突然从南方出现一度引起宋廷震恐,宦官董宋臣提议迁都,遭到众人一致批驳。节度判官文天祥上书请斩董宋臣,最终理宗安下心来继续调度作战。虽然宋军在南方确实疏于布防,但其实当年孟珙、李曾伯并非没有考虑敌军从南方突破的可能,早在潭州筑城布防。湖南制置副使向士璧驻守潭州,兀良合台猛攻月余,毫无进展。忽必烈则与张柔会攻鄂州,鄂州之战也非常惨烈。宋廷最初判断钓鱼城之战后蒙军将全部撤离,未料忽必烈反而在这时动手,急忙将企图隐匿消息的右丞相兼枢密使丁大全罢免,以吴潜为左丞相兼枢密使,贾似道为右丞相兼枢密使,仍兼京湖、四川宣抚使,调兵会战。吕文德立即从重庆赴援鄂州,贾似道移司黄州,后亲自入鄂指挥。

忽必烈也移驻龟山(今在武汉市区内)指挥,鄂州城墙多次被攻破但又被宋军立即修复,贾似道还在一夜之间筑起一道木栅作为夹墙。忽必烈也对贾似道赞赏有加,对部下道:“吾安得如似道者用之?”到十一月,宋军伤亡超过13000人,但仍然英勇坚守,而且各路援军还在不断赶来。蒙军虽然势大,但此时连遭重创,士气低落,而且还有被人在后方称汗的危险。几位汉臣向忽必烈分析了局势后,忽必烈无奈,于十二月初撤围北返,留张柔等部接应兀良合台。兀良合台撤围潭州,率骑兵快速穿越,在张柔的接应下回到河南,这一次壮观的大包抄其实并未起到实际作用。忽必烈的行为非常反常,蒙哥汗此次亲征其实也大有深意,如果我们不稍加仔细思考,很容易与真相失之交臂,更何况这其中隐藏着人类历史的一次重大转折。忽必烈虽然在拥立蒙哥为大汗的过程中立下大功,但当初是拖雷系团结起来和窝阔台系争夺汗位,争到之后就该互相争了,这也是部族政体的常理。蒙哥汗有三个同母的弟弟,即位后以二弟忽必烈分管中原,三弟旭烈兀西征,四弟阿里不哥留守哈剌和林。蒙古从成吉思汗开始就始终坚持蒙古本位,喜好西方文化,时刻提防汉文明会对他们产生同化。

蒙古诸王中唯独忽必烈有明显汉化倾向,身边有许多汉儒智囊。更重要的是由于他对中原的成功治理,威望日隆,而蒙哥汗本人长期留驻漠北,威望却有所下降。所以蒙哥汗不得不进行一次大规模亲征,以改变这种趋势。而蒙哥汗在钓鱼城陷入苦战时,忽必烈迟迟不肯出兵配合,说明他心中早有算盘。他的设想应该是蒙哥汗在四川战场打个败仗,然后他在兀良合台的配合下在京湖战场打个大胜仗,两人的威望就会此消彼长,所以就不难理解他为什么要等到蒙哥汗兵败后才出兵鄂州,至于兀良合台很可能是与他合谋。当然,蒙哥汗战死以及自身也战败就很出乎忽必烈的意料了,他只能在战败后匆忙赶回上都争位。而旭烈兀已经攻克巴格达,灭亡了阿拔斯王朝,此时正在进攻埃及帝国马穆鲁克王朝的藩属国叙利亚。得到蒙哥汗驾崩的消息,旭烈兀命部将怯的不花留守大马士革,自己急忙东返。由于忽必烈的汉化倾向,蒙古各部都不支持他,而拥护留守哈剌和林的幼弟阿里不哥。蒙哥汗近臣阿蓝答儿甚至率兵进逼距上都仅百里处,所以弘吉剌才会急召忽必烈北返。按中立方《史集》记载,阿里不哥在景定元年(蒙古中统元年,1260年)三月召开库里台大会,被选举为大汗。

五月,忽必烈在上都开平府即位,称薛禅汗,建元中统,为阅读方便,我们仍称其为忽必烈汗。按《元史》说法,阿里不哥在五月才被选举为大汗,略晚于忽必烈汗,不排除这是元代史官的细节处理。之后忽必烈汗和阿里不哥汗展开了长达五年的激战。旭烈兀得到这个消息,同时得知怯的不花军被马穆鲁克将军拜伯尔斯率军全歼,于是不再东返,回到伊朗指挥作战,后被元世祖册封为伊儿汗。而拜伯尔斯篡为马穆鲁克苏丹后,联合术赤系亲伊斯兰的钦察汗国与旭烈兀系亲基督的伊儿汗国开战。蒙古陷入前所未有的激烈内斗,在全球的攻势都暂时收缩。之后蒙古西进的势头得到扼制,当时西欧正处于封建小国林立的状态,又刚经过几次十字军东征,实力很弱,眼见东方的花剌子模等大国被灭,完全没有信心抵抗蒙古人的攻势,基督教教义中的“世界末日”似乎就要来到。然而就在这个紧要关头,蒙古人却突然放弃攻势,为希腊-罗马文明存留了火种,说来这一切都是因为蒙哥汗死在钓鱼城下引起的,所以西方人称钓鱼城拯救了世界。但是,西方文明获得了拯救,代表华夏文明的南宋呢?祸兮福所倚,福兮祸所伏。击毙蒙哥汗这件无比光荣的战功对于宋人而言却未必是一件好事,一个重大的转折恰恰在此发生了。