至元十二年(1275年)冬,正当常州军民艰苦抗敌之际,宋廷派张全率2000余人由淮入援常州,文天祥也派部将尹玉率兵偕同赴援。伯颜得报后,命斡鲁纳台·怀都、王良臣领兵在五牧(今江苏常州东南)阻击南宋军。战争开始后,文天祥部将麻士龙与元军交战,由于张全按兵不救,麻士龙战死。在元军攻击下,张全退到五牧,文天祥部将朱华奋起抗击,挡住了元军;尹玉指挥南宋军与元军决战,元军损失惨重。元将王良臣配斡鲁纳台·怀都水陆夹击南宋军,南宋将张全始终按兵不动;尹玉失败,溃军南逃,尹玉力战被俘,为元军所杀,所部将士大部分战死。张全见大势已去,率军逃离五牧,致使救援失败,没能解常州之围。伯颜攻破常州后,派都元帅阇里帖木儿,斡鲁纳台·怀都率兵攻无锡、平江,在元军大兵压境下,两地南宋军投降元军。
东路水军以范文虎为先锋,顺江东进,由于长江两岸已无南宋军把守,元军进军顺利。当时长江口活跃着一支由贫苦渔民组成的水军,由朱清、张瑄率领,不受宋朝管辖;元军主帅董文炳认为可以利用这支力量,便招降了这支海上武装。朱、张二人带领人马和海船随元军南下攻取临安,增强了元军海战能力。东路军出长江口后沿海而下,十二月逼近钱塘江口,从海道包围了临安。