率领主力军队,沿著海岸乘船北上。
安南军队在升龙以北和明军交战,无法取胜,于是败退下来。不少人逃到城里,还有人跑进了西边的山里。城里很多人觉得肯定还是不能守住,但有几个大臣却很不服气,坚持说「以往每次都失败退走,不像是当年战胜过元朝的军队,再这样就没脸去见祖先,也会被哀牢、占婆的蛮族嗤笑了」,于是不少人都觉得羞愧,坚持率领部众留下来守城。明军本来觉得升龙肯定又是无血开城,于是准备不足,没有及时趁乱抢下。
双方第一次交战之后,率领明军的都督就发现情况不对,开始向后方呼叫支援。但明军整体疏忽大意,认为就算一时遭到挫折,也对整体形势无补。第一次进攻失败三日后,准备充分的明军第二次攻城,安南军队则发起反击。双方纠缠了一天,都没有效果。不过,安南军队里有些人发生了动摇,计划向明军投降,并且告知他们防御薄弱的位置,打算充当内应,于是明军坚持继续作战,第二天果然在内应的帮助下占领东门。双方一路打到城内。
在关键时刻,陈文康率领的军队在北方登陆,截断了明军的粮道,然后派遣先头部队南下,并且和之前逃散的安南人联合起来。这些逃入山林中的安南兵,数量还不少。在他们的帮助下,元军得以迅速增加人数,很快就堵塞了两条北上的主要道路。
发现后方出现问题之后,明军认定肯定是敌人设置好的阴谋,因此中断了巷战,拆毁东门之后转头撤出,去对付北边的元军。明军的动作十分迅速,竟然比进行好了规划、甚至还有主场优势的元军更快。结果,先头部队的元军突然遭遇北上的明军,反而大为惊讶,两边接触不久,就被击溃了。
元军的军心因此大为动摇,将领们希望率军后撤,避开锋芒。陈文康从溃兵口中得知了前线情况之后,立刻点齐兵马。手下的千户们劝告说:「古人有避退三舍的道理,意思是敌人如果锋芒正盛,我们则必须躲避,以便减少损失。硬碰硬的话,估计也不是明军的对手。」陈文康气愤地说:「古人退避之后尚且有心思战斗,我们的军队这个样子,要是退避的话,肯定就连最后的抵抗决心都失去了。况且交趾人都能坚持守城,我们现在也是朝廷经制兵,为什么要畏惧红头巾的贼人呢?」于是坚持要率军迎战。其他人都不敢,他就亲自带兵出击。
明军击退元军之后,广泛地