北征大军进军的速度不算快,经常上午行军,中午之后休息,甚至还会在途中休息一至数天,其后勤的补给方式是,动用武刚车3万辆,运粮约25万石,随军而行。武刚车运粮虽然胜过人力运粮,但在蒙古地区行军经常需要横跨沙漠,而笨重的武刚车时不时会陷入沙堆之中,从而拖延了行军速度(朱棣吸取了教训,后来几次亲征漠北时,改用大量的驴子来运输)。
明军平均每十日路程,就建筑一个城寨,里面通常都有水源,当前进时缺水,可以派人返回到后面的城寨里取水,同时,每一个城寨里面都贮存了粮草,并留置着一部分军队守卫(明军建筑的城寨有“杀胡城”、“灭胡城”等,同时还利用洪武年间北征蒙古时遗下的城寨。例如“广武镇”就是洪武五年李文忠北征时的屯粮基地)。军队沿路筑城贮粮的主要目的是为回师作准备,这显示朱棣最初制订的计划是沿原路回师。
5月1日,明军到达胪朐河(朱棣改其名为“饮马河”),至此,已经深入蒙古腹地,却仍未与鞑靼军主力相遇。朱棣非常重视侦察敌情,据《山堂别集》记载,他曾经训斥负责侦察任务的哨马营等将领,称:“哨马营离大营30里??不发哨马在前,却令架炮之人在前,遇见贼五人,若贼有胆略,如何不被其擒去(所谓“架炮之人”的任务就是发现敌人时用炮声来作预警的,与作战机构神机营的任务不相同)?”为了避免有将士被敌人掠去而导致泄漏军机,朱棣特别下令选拔精壮官兵沿途收容患病及掉队之人。
从进军过程中,可以看出明军是采取集中兵力的形式,步步为营地向前推进。
5月5日,明军首次捕获鞑靼军队的间谍,5月8日,当前进至环翠阜时,一位名叫款台的指挥又捕获了一名间谍。据这位间谍供称鞑靼发生内讧,大汗本雅失里率一部分人马向西欲投奔瓦剌,现在已经到达了兀古儿扎河(即克鲁伦河北),而太师阿鲁台则率另一部分人马东奔。
针对鞑靼已经分散为两部分的事实,朱棣亦改变了以往集中兵力的布置,而采取分兵应付的措施,他把军队分为两部分,一部由其亲自带领,携带20日粮,追击本雅失里。另一部分驻扎在新筑成的“杀胡城”中,监视东奔的阿鲁台部。
朱棣命令随征诸将在带兵时要尽量不走山路,避免士兵疲惫不堪,当他到达兀古儿扎河时,发现本雅失里已经离开该地,便连夜追击,于5月13日在斡难河畔追上了本雅失里,双方爆发了一场激战。