龙武二十一年春,太子率师北伐。
伪齐帝陈珂遣大将张弘范率八万军阻于睢阳。
太子分兵袭其粮道,自领精卒夜渡汜水。
破敌七寨,斩首万余。
张弘范退守开封,献城降桀。
太子令掘地道焚其粮仓,城陷。
执张弘范,槛送京师。
二十二年夏,战于陈留。
伪齐联合北桀右卫,设伏困王师。
太子佯退三十里,诱敌出城。
回师反攻,三日拔十七寨。
右卫军尉阿术单骑遁走,损兵六千。
二十三年秋,收复洛州。
伪齐丞相王浍挟民十万北逃。
太子令轻骑追截于孟津。
尽获其众,斩王浍于黄河畔。
是岁,河北义军纷起响应。
二十四年冬,北桀增兵河南。
遣高山卫、左卫合兵七万来犯。
太子据虎牢关坚守月余。
伺敌粮尽,开关突击。
左卫军尉秃鲁花中箭殒命,高山卫退守邙山。
二十五年春,决战邙山。
伪齐残部与高山卫据险死守。
太子亲率死士千人攀崖夜袭。
焚其大营,斩将二十一员。
高山卫副尉忽察儿自焚,余众尽降。
二十六年秋,光复汴梁。
伪齐帝陈珂服毒殉国。
太子令收葬前朝宗室遗骨,修葺皇陵。
北桀遣使议和,求划黄河为界。
太子斩使焚书,整军北进。
二十七年冬,会战长安。
北桀大将古达率本部护卫并高山卫、右卫余部,合兵十万围城。
时太子仅余二万守军。
粮草将尽,乃取渭水混泥沙为炊。
正月甲子,古达驱降卒为前阵,架云车百具攻城。
太子命撤下城头旌旗,示弱诱敌。
待桀军登城过半,突发震天雷轰击。
古达急令右卫驰援,遭伏兵截杀。
次日,古达亲率高山卫攻坚。
太子开西门诈退,桀军争入瓮城。
忽降铁闸,投火油薪柴。
高山卫精锐尽殁火海。
第三日,古达集结残部四万列阵渭水。
太子亲率玄甲骑出击,前往凿阵。
激战半日,破其圆阵。
太子挽五石弓射落古达帅旗,亲斩古达于马下。
左右护卫拼死来救,皆被绞杀。
是役,阵斩古达,杀绝左右护卫,斩首四万余众,获铠甲马匹无数。
渭水为之不流,百里腥膻三月不散。
龙武二十八年春,太子祭告太庙。
传檄河北诸州,整备北伐。
时王师已控陕洛,据崤函之固。