南宋在同蒙古軍作戰中,逐漸形成守長江上遊以固下遊,守漢淮以蔽長江的防禦方針,加強了四川、荊湖、兩淮三個戰區的設防。四川戰區,餘玠采取守點控麵的防禦措施,建立以重慶為中心,以堡寨控扼江河、要隘的梯次防禦體係。荊湖戰區,宋安撫製置使孟珙招兵置軍,大興屯田;為阻止蒙古軍過夔門沿江東進,實施了梯次防禦。江淮戰區,在軍事重鎮和要點加築城寨,增兵守備,並於城寨百裏以內,三裏一溝,五裏一渠,遏製蒙古騎兵長驅奔襲。同時還造輕捷戰船,以水、步混編組成遊擊軍,屯戍長江,擬隨時應援。
蒙哥繼汗位後,針對南宋防禦部署,命四川、河南、山東諸軍開辟屯田,與宋軍爭奪城鎮與堡寨。蒙哥鑒於水軍稀少,難以越過長江天險,遂采取戰略大迂回,從翼側及側後攻宋。
蒙哥汗六年春,兀良合台征降雲南各部後,偕大理國王段興智向蒙哥汗獻圖。六月,蒙哥鑒於對宋的側後包圍已完成,遂以宋囚蒙古使臣為名,決定攻宋。詔命兀良合台打通由雲南至四川道路;命帖哥火魯赤、帶答兒率軍南進,與兀良合台會師。北路,帖哥火魯赤與汪德臣以原隆慶府(今四川廣元)降將南永忠、高貴為向導,率軍自利州(今廣元)出苦竹隘,經閬州(今閬中),進抵順慶府(今南充),沿嘉陵江南下;帶答兒率軍自興元(今陝西漢中)經米倉山入蜀,越巴州(今巴中),沿渠江南下,至渠州(今渠縣)。十一月,抵重慶附近地區。南路,兀良合台自雲南率軍北進,攻占滇蜀要衝烏蒙(今雲南昭通)等地。鑒於瀘江(今金沙江)河道險阻,水勢洶湧,兀良合台從陸路向石門關(今四川高縣西北)進軍,破禿剌蠻三寨,又破石門關,趨敘州(今宜賓東北),欲北進至嘉定(今樂山)。在馬湖江(今四川境內金沙江別名)遭宋都統製張實、知敘州史俊所率三萬兵截擊。蒙古軍力戰獲勝,奪船兩百艘後,改道東進。循大江南岸,水陸並進,趨重慶,後沿嘉陵江北進,於十二月到達合州附近,與帖哥火魯赤、汪德臣及帶答兒部軍會師。次年正月,蒙古三路大軍先後原路返回。
南宋寶祐六年,蒙哥汗八年(1258年)二月,蒙哥決定發動全麵侵宋戰爭,徹底征服南宋。西路由蒙哥親征攻四川,宗王塔察兒率東路軍攻荊山(今安徽懷遠西南),以分宋兵力。由於塔察兒攻宋不利,蒙哥又改命其弟、總領漠南漢地軍國庶事忽必烈統領東路軍。蒙哥意圖在踏平川蜀後,與忽必烈的東路軍攻下鄂州會師,直趨南宋首都臨安(今浙江杭州)。
蒙哥統兵四萬,號十萬,自六盤山(今寧夏境)分兵三路進攻四川。十二月,攻占川西、川北大部州縣,進抵武勝山(今武勝縣城附近),準備進攻合州,宋將餘玠已將合州治所移於釣魚城。釣魚城坐落在今重慶市合川區城東五公裏的釣魚山頂,其山突兀聳立,相對高度約三百米。處嘉陵江、渠江、涪江匯合處,南、北、西三麵環水,壁壘懸江,城周十二三裏,均築高數丈的石牆,南北各建一條延至江中的一字城牆;城內有大小池塘13個,井92眼,可謂兵精糧足,水源充足;江邊築設水師碼頭,布有戰船,上可控三江,下可屏蔽重慶(今重慶市),是支撐四川戰局的防禦要塞,地勢十分險要。蒙哥派降將晉國寶入釣魚城招降,被王堅所殺。蒙哥恃其兵強馬壯,不納術速忽裏避開堅城,迂回夔、萬東下的建策,無視天候、地理的不利條件,決心攻下釣魚城。遂遣諸王末哥攻禮義山城(今渠江東北,俗稱三教寺寨),曳剌禿魯雄攻平梁山城(今四川巴中西),命宋降將楊大淵率軍突襲合州舊城,切斷外圍諸城與釣魚城的聯係。同時,令四川都元帥紐璘自成都趨涪州藺市(今重慶市涪陵區西)造浮橋,斷絕宋援。又在銅羅峽據險為壘,阻遏重慶宋軍北進。蒙哥率軍渡過雞爪灘(今釣魚城東北雞心石),駐於城東石子山,親督諸軍攻釣魚城。
這日,蒙古東道軍史天澤率部也到達釣魚城參戰,連續進攻城東之東新門、奇勝門、鎮西門、小堡等處,但在宋守城軍民頑強抗擊下,均遭失敗。隨後,連降大雨二十天,天初晴,蒙古軍偷襲城南護國門未逞。次日深夜,攻破城北出奇門至嘉陵江一側的一字城,但被王堅率勇士力戰奪回。宋理宗聞訊,下詔嘉獎,鼓勵合州軍民。釣魚城久攻不下,蒙哥命諸將“議進取之計”。術速忽裏認為,頓兵堅城之下是不利的,不如留少量軍隊困擾之,而以主力沿長江水陸東下,與忽必烈等軍會師,一舉滅掉南宋。然而驕橫自負的眾將領卻主張強攻堅城,反以術速忽裏之言為迂。蒙哥未采納術速忽裏的建議,決意繼續攻城。蒙軍大舉攻蜀後,南宋對四川采取了大規模的救援行動,但增援釣魚城的宋軍為蒙軍所阻,始終未能進抵釣魚城下。盡管如此,被圍攻達數月之久的釣魚城依然物資充裕,守軍鬥誌高昂。一日,南宋守軍將重十五公斤的鮮魚兩尾及蒸麵餅百餘張拋給城外蒙軍,並投書蒙軍,稱即使再守十年,蒙軍也無法攻下釣魚城。相形之下,城外蒙軍的境況就很糟了。蒙軍久屯於堅城之下,又值酷暑季節,蒙古人本來畏暑惡濕,加以水土不服,導致軍中暑熱、瘧癘、霍亂等疾病流行,情況相當嚴重。王堅乘機多次夜襲蒙古軍營地,使其人人驚恐,夜不得安。
蒙古軍前鋒元帥汪德臣率軍乘夜突破外城馬軍寨,王堅率兵拒戰。天將亮時,下起雨來,蒙軍攻城雲梯又被折斷,被迫撤退。蒙軍攻城五個月而不能下,汪德臣遂單騎至釣魚城下勸降,被城上飛石擊中,不久死於縉雲山寺廟中。蒙哥大怒,命軍在東新門外築台建樓,窺探城內虛實以便決戰。蒙哥親臨現場指揮,中飛石受傷,卒於軍中(一說染病而死)。
忽必烈軍至汝南(今屬河南),得知蒙哥死於釣魚城(參見釣魚城之戰),誤為謠言,遂采取招降與進攻兩手,繼續前進。忽必烈率主力渡過淮河,破大勝關(今河南羅山南),宋戍兵皆遁。萬戶張柔率軍攻最險要的虎頭關(今湖北麻城東北),先與宋軍戰於沙窩(今河南商城西南),其子張弘彥將宋軍擊敗,繼而破守關宋兵。忽必烈兵至黃陂(今湖北黃陂北),率軍抵長江北岸,時任南宋沿江製置副使的袁玠是權臣丁大全的黨羽,為政橫征暴斂,當地百姓無不痛恨。及蒙古軍至,漁人盡獻漁舟濟師,並充作向導。這時,從攻四川的宗王末哥遣使告蒙哥死訊,請其北歸爭汗位。忽必烈為立戰功,仍率師渡江。
忽必烈登上江北的香爐山(今陽邏堡北),俯瞰大江,見江北有武湖,湖東江岸築陽邏堡,南岸即滸黃川,宋軍以大舟扼江渡,擁兵十萬,戰船兩千,列陣於江中,水陸陣容嚴整。蒙古軍當即遣軍奪大舟兩艘,連夜準備舟楫,欲奪據點陽邏堡,強渡大江。
那天早晨,風雨昏暗,諸將以為不可渡江。忽必烈不從,令揚旗擂鼓,分兵三道並進。勇將董文炳率敢死士數十百人衝其前,乘朦朧擊鼓急進,直達南岸,諸軍亦競相爭渡,宋軍迎戰,三戰皆敗。習水戰的部將張榮實率軍乘輕舟鏖戰於北岸,獲宋大船二十艘,俘兩百人,斬宋將呂文信。水軍萬戶解誠部將朱國寶,率精兵與宋軍戰於中流,十七戰,奪宋船千餘艘,殺溺宋兵甚眾。宋軍三道皆敗,陽邏堡防線也累遭失敗,蒙古軍遂迅速渡江。董文炳派董文用以輕舟渡江,向忽必烈報捷。忽必烈聞報大喜,傳令全軍進圍鄂州城,同時分一部兵由鄭鼎率領襲江西;另遣兵於湖南接應繞道大理而攻擊宋朝腹地的兀良合台軍。
忽必烈渡江後,駐營於滸黃州,下令“軍士有擅入民家者,以軍法從事,凡所俘獲,悉縱之”。初六,派人前往招降鄂城。使者行至東門,宋軍箭如雨下。忽必烈知道宋軍有所準備,於是率軍將鄂州團團圍住。因為蒙哥進攻四川的緣故,樞密使賈似道、四川製置副使呂文德等人率領的大軍都在支援長江上遊,鄂州隻有都統權州事張勝主事,兵力十分空虛,守備頓時危急起來。
忽必烈登上城東北壓雲亭,立高樓觀察城中軍情,見城中出兵,即遣兵迎戰,俘宋軍兩人。後遣將攜宋降人至城下勸降,張勝殺死降人並遣兵出擊,又被擊敗。張勝遂以緩兵之計,佯稱歸附,誘勸蒙古軍東撤。蒙古軍中計後撤,張勝趁機將城周圍民居焚毀,使鄂州城防成為一體。這時宋將高達、邛應從江陵率軍入援。蒙古軍百戶長鞏彥暉迎戰,高達埋下伏兵後假意撤退,一舉擒殺鞏彥暉。鄂州之戰處於相持狀態。
宋理宗聞報鄂州被圍,非常驚慌,一度想遷都至寧海軍(今浙江寧海)。太後和大臣們紛紛反對,時任寧海軍節度判官的文天祥更是言辭激烈,上疏要求將提出遷都的董宋臣斬首示眾。宋理宗這才安下心來,一麵組織義勇,一麵命各製司進兵赴援,詔賈似道節製江西、兩廣人馬,立即援助中流,以增強抵抗蒙軍進攻的能力。
蒙古軍包圍鄂州後,在城外造起了一座五丈高的瞭望台。忽必烈每日在上麵指揮攻城。由於久攻鄂州不克,又聽說宋援軍到來,忽必烈下令抓緊攻城。蒙古軍遂組織敢死隊,由勇將張禧、張弘綱父子率領,自城東南角登城,高達率諸將力戰,張禧身負重傷而退。忽必烈見狀,對張柔說:“吾猶獵者,不能擒圈中豕,野獵以供汝食,汝可破圈而取之。”張柔乃命部將何伯祥造鵝車,掘洞入城,又選勇士登城,經激烈戰鬥後破城東南隅。高達率軍奮力抗擊,並組織人力修城牆,隨破隨修,使蒙古軍不得入。為防止蒙古軍再穴城而入,賈似道命宋軍沿城牆內壁建造木柵,形成夾城。僅一夜時間,環城木柵全部竣工。
雖然鄂州暫時可保,但是宋朝的軍事形勢仍不容樂觀。繞道雲南的蒙古軍兀良合台嚐試攻擊柳州(今廣西柳州)與靜江府(今廣西桂林)失敗,星夜從小路北上,殺到了宋荊湖南路首府潭州(今湖南長沙)城下。江西一帶也受到蒙古騎兵的騷擾。南方腹地四麵開花,這一情況引起了宋廷的極大震驚。監察禦史饒應子認為“今精兵健將鹹在閽外,湖南、江西地闊兵稀,雖老臣宿將可以鎮壓,然無兵何以連捍敵之來?當自內托出,不當自外趕入。”於是宋理宗下詔,命賈似道突圍移司至黃州(今湖北黃岡),在那組織起一道新的防線,以便更好地指揮宋軍全局戰鬥。然而從鄂州突困到黃州,是一條十分危險的道路。呂文德遣部將孫虎臣將精兵七百護送,途中遭遇蒙古軍,幸虧都是老弱殘兵及所掠金帛子女,孫虎臣率軍將其打敗後,賈似道才得以順利地入黃州。賈似道移司成功,鼓舞了兩淮、江西一帶的士氣,“下流之兵始振”。
時間進入冬季。蒙古軍屢屢向鄂州發起強攻,但是疫病、缺糧使圍城部隊減員十之四五;宋軍死傷已經達到一萬三千餘人,鄂州之戰初期的守將張勝也英勇地犧牲在了城頭上。令忽必烈更加擔心的是,妻子察罕寄來書信說,忽必烈的弟弟阿裏不哥正在謀劃繼承蒙古大汗之位。自蒙哥死後,開平的汗位一直空虛。幾個兒子剛剛成年,不具備爭奪汗位的實力;三兒子旭烈兀正匆匆忙忙地從西亞趕回蒙古,也難以問鼎寶座,所以汗位的爭奪就在忽必烈和阿裏不哥兩兄弟手中展開。謀臣郝經認為滅宋是持久戰,勸忽必烈先回國奪取汗位。
這時賈似道向蒙古派出了使者,指出宋蒙雙方均已精疲力竭,不如講和停戰。提出:“北兵若旋師,願割江為界,且歲奉銀、絹匹各二十萬。”趙璧答稱:“大軍至淮州時,誠有是請,猶或見從。今已渡江,是言何益!賈製置今焉在耶?”拒絕了賈似道乞和之請。後忽必烈迫於形勢,答應了賈似道的賣國請求。自己率軍北返,開始了爭奪蒙古汗位的鬥爭。