1254年,合州守将王坚进一步完善城筑。四川边地之民多避兵乱至此,钓鱼城成为兵精食足的坚固堡垒。
而在蒙哥率军前往钓鱼城之前,遣宋降人晋国宝至钓鱼城招降,为宋合州守将王坚所杀。
宋开庆元年二月二日,蒙哥汗率诸军从鸡爪滩渡过渠汇,进至石子山扎营。三日,蒙哥亲督诸军战于钓鱼城下。
七日,蒙军攻一字城墙。一字城墙又叫横城墙,其作用在于阻碍城外敌军运动,同时城内守军又可通过外城墙运动至一字城墙拒敌,与外城墙形成夹角交叉攻击点。钓鱼城的城南、城北各筑有一道一字城墙。九日,蒙军猛攻镇西门,不克。
这日,蒙古东道军史天泽率部也到达钓鱼城参战。
三月,蒙军攻东新门、奇胜门及镇西门小堡,均失利。从四月三日起,大雷雨持续了二十天。雨停后,蒙军于西月二十二日重点进攻护国门。二十四日夜,蒙军登上外城,与守城宋军展开激战。
《元史?宪宗纪》称“杀宋兵甚众”,但蒙军的攻势终被宋军打退。五月,蒙军屡攻钓鱼城不克。蒙哥率军入蜀以来,所经沿途各山城寨堡,多因南宋守将投降而轻易得手,尚未碰上一场真正的硬仗。因此,至钓鱼山后,蒙哥欲乘势攻拔其城,虽久屯于坚城之下,亦不愿弃之而去。尽管蒙军的攻城器具十分精备,奈何钓鱼城地势险峻,致使其不能发挥作用。
钓鱼城守军在主将王坚及副将张珏的协力指挥下,击退了蒙军一次又一次的进攻。千户董文蔚奉蒙哥汗之命,率所部邓州汉兵攻城,董文蔚激励将士,挟云梯,冒飞石,履崎岖以登,直抵其城与宋军苦战,但因所部伤亡惨重,被迫退军。
其侄董士元请代叔父董文蔚攻城,率所部锐卒登城,与宋军力战良久,终因后援不继,亦被迫撤还。然而骄横自负的众将领却主张强攻坚城,反以术速忽里之言为迂。
蒙哥汗未采纳术速忽里的建议,决意继续攻城。然而,面对钓鱼坚城,素以机动灵活,凶猛剽悍著称的蒙古骑兵却不能施其能。
六月,蒙古骁将汪德臣率兵乘夜攻上外城马军寨,王坚率兵拒战。
天将亮时,下起雨来,蒙军攻城云梯又被折断,被迫撤退。蒙军攻城5个月而不能下,汪德臣遂单骑至钓鱼城下,欲招降城中守军,几乎为城中射出的飞石击中,汪德臣因而患疾,不久死于缙云山寺庙中。
蒙哥闻知死讯,扼腕叹息,如失左右手。汪德臣之死,给蒙哥精神上以很大打击,钓鱼城久攻不下,使蒙哥不胜其忿。蒙军大举攻蜀后,南宋对四川采取了大规模的救援行动,但增援钓鱼城的宋军为蒙军所阻,始终未能进抵钓鱼城下。
尽管如此,被围攻达数月之久的钓鱼城依然物资充裕,守军斗志昂扬。一日,南宋守军将重15公斤的鲜鱼两尾及蒸面饼百余张抛给城外蒙军,并投书蒙军,称即使再守10年,蒙军也无法攻下钓鱼城。
相形之下,城外蒙军的境况就很糟了。蒙军久屯于坚城之下,又值酷暑季节,蒙古人本来畏暑恶湿,加以水土不服,导致军中暑热、疟疠、霍乱等疾病流行,情况相当严重。
据《元史》记载,蒙哥汗于六月也患上了病,而拉施特《史集》更明确说是得了痢疫。另《马可波罗游记》和明万历《合汗是负了伤。无论如何,蒙哥不能再坚持攻城了。
七月,蒙军自钓鱼城撤退,行至金剑山温汤峡,蒙哥汗逝世。
据《元史》本传及元人文集中的碑传、行状等所载,不少随蒙哥汗出征的将领战死于钓鱼城下,由此可以想见钓鱼城之战之酷烈及蒙军损失之严重。
而很可惜的是,重伤蒙哥以及重创蒙古军的王坚并没有得到宋廷的重用:
九月,朝廷封王坚宁远军节度使、依前左领军卫上将军、兴元府驻扎,御前诸军都统制兼知合州,节制兵马,进封清水县开国伯。
景定元年,贾似道忌王坚战功,使帝诏坚回京城临安。
景定五年,王坚去世,获谥“忠壮”。合州军民闻坚卒,立庙祀之,并建碑记其功,“坚以鱼台一柱支半壁”迄今犹存。宋蒙钓鱼城之战改写了欧亚历史。
在王坚前往临安之后,王立成为了合州守将(在这之前有可能还有其他人),而最终的结果是在公元1279年,守将王立选择的是放弃抵抗而开城投降。
蒙哥汗在钓鱼城下的败亡,其影响是十分巨大的。首先,它导致蒙古这场灭宋战争的全面瓦解,使宋祚得以延续20年之久。进攻四川的蒙军被迫撤军,护送蒙哥汗灵柩北还。率东路军突破长江天险,包围了鄂州的忽必烈,为与其弟阿里不哥争夺汗位,也不得不撤军北返。从云南经广西北上的兀良合台一军,一路克捷,已经进至潭州城下。
由于蒙哥之死,该军在忽必烈派来的一支部队