德祐元年(元至元十二年,1275年)三月,丁家洲之战后,元军迅速东进,占领建康(今江苏南京)。继而遣兵四出,破镇江、常州(均属江苏)、广德军(今安徽广德)等地。宋廷为挽救危局,命主战将领张世杰为保康军承宣使、总都督府诸军。张世杰遣部将阎顺、李进进军广德;谢洪永进军平江(今江苏苏州);刘师勇、李山进军常州。
五月初七,宋都统制刘师勇在姚、陈炤的协助下,复常州。宋廷命姚为知常州,陈炤为通判,率军守城,派副都统王安节率军加强守城。晋陵人胡应炎也选壮勇之民3000人,护国寺的万安、莫谦之长老,组织500和尚协助守城。
八月十二日,刘师勇、殿前都指挥使张彦收复吕城(今江苏丹阳东南)。
九月,右丞阿塔海见吕城失守,于二十七日遣万户怀都、忽剌出、帖木儿等率军攻破吕城,宋军南逃,元军追击至常州,获战船100余艘,擒张彦等人。
十月初八,阿塔海、怀都、忽剌出等率军围攻常州。守将姚訔、陈炤、王安节、刘师勇等力战固守,元军久攻不克,逐渐增兵。姚訔急遣人向朝廷求援。二十六日,宋援军至五牧、虞桥(均在今江苏常州东南),遭元军阻击败退。常州孤立无援。
十一月十六日,中书右丞相伯颜率军至常州,与阿塔海会兵围城。招降被拒,伯颜即亲临南城督战。命降人汪良臣胁迫乡民运土堆垒,土至并人以筑之,垒高与城齐,上置火炮,焚其牌杈,又发火箭烧城内建筑,昼夜攻城不息。城中危急,姚等守城益坚。十八日,伯颜命架云梯、绳桥,指挥帐前军携赤旗奋勇先登,诸军见伯颜旗已立城头,四面并进,蜂拥而上,迅速占领城头。姚在阵前指挥,与诸将士拼死力战,因寡不敌众,英勇战死。元军破南门而入,万安、莫谦之等高举“降魔”大旗,杀向南门,力单无援,500和尚全部战死。城破,王安节、陈炤、胡应炎等率兵与元军巷战,亦因体力不支,先后阵亡。刘师勇转战至北门,乘乱突围,仅带数骑逃往平江。
元军破常州后,伯颜下令屠城,常州军民被杀几尽。元军集中主力破常州,攻取临安尤如高屋建瓴。