六月,元世祖亲自率领大军从上都来到撒儿都鲁(今辽河附近),乃颜和金家奴、塔不歹等率领十来万军队进逼元世祖的住所。忽必烈见敌众我寡,接受司农卿铁哥的建议,搭设营帐,端坐在胡床上细斟慢饮,效仿诸葛亮空城计,以计取胜。塔不歹等见忽必烈镇定自若,心里害怕,不敢发动进攻。
不久,忽必烈在乃颜军队退缩之时下令李庭率领汉军向叛军发起猛烈进攻,乃颜败走,逃到实列门林后被元军擒杀。七月,元世祖派人领兵攻打乃颜的余党,一直向北追到金山(今吉林白城市西南大兴安岭),全部剿灭了乃颜部的势力。
至元二十五年(公元1288年)正月,诸侯脱里海都进犯边境地区。海都是太宗窝阔台的孙子。宪宗时,海都被封在海押立(巴尔喀什湖和伊黎河之间)一地为王。到元世祖时,海都的势力强大起来,成为窝阔台汗后代各位诸侯脱里的首领。1269年开始,海都便开始谋求自立,一些脱里贵族逐渐依附海都,削弱了元朝的统治力量。1289年秋,元世祖亲自率领军队讨伐海都。经过几年的征战,双方互有胜负。
至元三十一年(公元1294年)春,元世祖忽必烈感觉身体不舒服。正月十九日,病情加重。正月二十二日,元世祖在紫檀殿驾崩,在位共三十五年,享年80岁。正月二十四日,皇帝的灵柩安葬于起辇谷中。同年,成宗铁穆耳即位,继续攻打海都,直到1308年才彻底平定了漠北的海都叛乱。