祐六年（1246年），贵由派蒙古分兵四路入蜀，余玠依靠山城体系。又打退了蒙古军的进攻。淳祐十年（1250年），余玠调兵北伐。自率主力，取金牛道向汉中（今陕西省汉中市）进发，三战连胜。次年四月，余玠率军十万进占汉中之西的中梁山，烧毁汉中至大散关（今陕西省宝鸡市西）栈道。蒙古军围攻汉中，昼夜攻打，蒙古军修复栈道，援军到达，余玠久攻不克，只好撤军。淳祐十二年（1252年），余玠率军击退进攻嘉定（今四川省乐山市）的蒙古军，四川形势好转。