至元十二年,元荆湖行省左丞相
伯颜率军顺江东下,直趋临安(今杭州)(参见临安之战)。为牵制四川宋军,元世祖忽必烈命东、西川行枢密院向宋军发动进攻。驻守钓鱼城(今四川合川东)的宋将张珏,受命任四川制置副使、知重庆府后,在四川大部州县失守的情况下,仍依托钓鱼城要塞和重庆,继续抗元。
七月,元东川行院以一部兵力佯攻钓鱼城,以其余兵力会同西川行院全部兵力进围重庆,并在三江口(在今重庆东)架设浮桥,以阻宋援。数月后,重庆粮尽,元军不断劝降,情况危急。张珏一面派勇士潜入重庆协助守将赵定应防守,一面遣军袭扰元军,谋划赴援。
十三年(宋景炎元年)春,张珏采取攻其必救之策,遣军奔袭东川行院治所青居城(今南充南),乘东川行院总帅汪惟正率军回援之机,遣勇将张万以巨舰载精兵突破封锁,入重庆增援,时宋廷已在临安降元。四月,因东、西川行院矛盾突出,互相观望,忽必烈将东川行院并入西川行院。
六月,张珏乘西川行院治所空虚之机,遣兵与义军里应外合收复泸州(四川今泸州东神臂山),杀守将熊耳、安抚梅应春,俘元将眷属多人,迫使元军回师救援,重庆围解。十二月,张珏令部将王立守钓鱼城,自入重庆就职,并遣军夺回涪州(今四川涪陵)。十四年(景炎二年)七月,东川副都元帅张德润克涪州。十一月,西川行院军复克泸州(参见泸州之战)。忽必烈向四川增兵,以西川行院使不花率军数万复攻重庆。以主力驻佛图关(今四川重庆西),分遣一军驻南城,一军驻朱村坪,一军屯江上。
不花遣宋降将李从入重庆招降,张珏不从。副使李德辉至书张珏劝降,再次被拒绝。十五年(宋祥兴元年)正月,张珏遣总管李义将兵从广阳(今重庆东)出击,一军皆没。不花督总帅汪良臣攻城,张珏率军出战,挫败元军,汪良臣身中四矢。二月,张珏率军出薰风门,与六翼达鲁花赤也速答儿战于扶桑坝(今重庆东),遭元军前后夹击,败退入城。不花移师于堡子头,令元军大造云梯,加紧攻城。
也速答儿率20余骑至其门挑战,宋都统赵安出战,也速答儿三入其阵冲杀,宋军士气低落,元军四集,斩杀宋军500余人。桥船水手军总管石抹不老攻重庆太平门,登城杀守卒数十人。塔海帖木儿以拔都鲁军200人,攻宋水军,夺战船1艘,俘其众13人。
此战,张珏以攻其必救之策,挫败元军五路围攻,在宋廷已降元形势下,又坚持抗元三年,可歌可泣。元军以绝对优势,实施统一指挥,采取招降与军事进攻相结合之策,攻破重庆,为迅速占领四川铺平了道路。