但元军的算盘未能打响,唆都所部向北进攻时,正面对垒越南军队败北。败北的理由也让人想不到,因为此时南宋亡国不久,有不少宋军残兵败将逃到越南,被陈朝收留,所以此次抗击蒙元部队里有不少当年南宋将士,结果元军看到熟悉的军服被惊到了,大大出乎元军的意料之外,最后没能打赢越军。
“(元至元二十二年)夏四月,帝命昭成王怀文侯国瓒、将军阮蒯等领㨗兵迎战于西结步头。官军与元人交战于咸子关,诸军咸在。惟昭文王日燏军有宋人,衣宋衣执弓矢以战。元人见之,皆惊曰:「有宋人来助!」因此败北。”
此时已经逐渐到了夏天,陈国峻的战术开始生效,南边的唆都部没能正面攻破陈朝的防御,而北边脱欢部被陈国峻指挥下的各地民兵不断骚扰,即使打下了升龙城也没能待下去,被迫撤军回师。而在撤军途中,被陈国峻设伏大败,元军主力纷纷溃逃。
“官军聚诸将议:“交人拒敌官军,虽数败散,然增兵转多;官军困乏,死伤亦众,蒙古军马亦不能施其技。”遂弃其京城,渡江北岸,决议退兵屯思明州。镇南王然之,乃领军还。是日,刘世英与兴道王、兴宁王兵二万余人力战。又官军至如月江,日烜遣怀文侯来战,行至册江,系浮桥渡江,左丞唐兀等军未及渡而林内伏发,官军多溺死,力战始得出境。”——《元史》
“有自贼处逃赴御营,奏报云上相光啓、怀文侯国瓒及陈聪、阮可腊与弟阮传率诸路民兵败贼于京城、章阳等处。贼军大溃。太子脱驩、平章阿剌等奔过泸江。……兴道王又与脱驩、李恒战于万刼,败之,溺死甚众。”——《大越史记全书》