一些王室成员如陈益稷等，则投降元朝。在陈兴道护送太上皇、陈仁宗到清化，让各路越军得以专心抗敌，并逐渐传来捷报。在咸子关（位于今兴安省），越将陈日燏、陈国瓒在南宋遗将赵忠 (宋元之际)协助下击败元将唆都；陈光启在昇龙附近击败脱欢，使之退守京北地区（今北宁省地区），越军收复国都；元将唆都失利后，移师到西结（位于今兴安省），陈兴道乘机设下伏兵，击毙唆都，时在1285年（陈绍宝七年）农历五月。这些战事，令元军士气大挫。西结之役后，元军士气低落，加以时值盛夏，军中爆发疫病，造成士卒严重折损，脱欢决定撤军回国。