红军三大主力会师后,总兵力达到了8万多人。陕北当时的经济状况根本负担不起,苏联答应给红军提供一些援助,但要在新疆交接。为了打通连接苏联的通路,徐向前率领红四主力渡过黄河与马家军作战,过河的部队一共有三个军,分别是第5军、第9军和第30军。
当时第5军的军长是董振堂,下辖第13(师长叶崇本,政委朱金畅)和第14(师长郭锡三,政委谢良)两个师,总兵力3000余人,抢1500多支,平均每支抢仅有5发子弹;第9军的请况要好很多,该军下辖第25(师长王海清,政委杨朝礼)和27(师长陈家柱、政委易汉文)两个师,每个师三个团,总兵力6500人,抢2500多支,每支抢平均15发子弹。当时第9军的军长是孙玉清,政委是陈海松。
和第5军、第9军相比,第30军的实力最强。该军下辖第88(师长熊厚发、政委郑维山)和89(师长邵烈坤,政委张文德)两个师,每个师辖三个团,总兵力7000多人,抢3200多支,每支抢平均25发子弹。当时第30军的军长是程世才,政委为李先念。除了这三个军之外,当时过河的部队还有骑兵师(两百人马,抢200支,平均每支抢25发子弹)和王全嫒任团长的妇女独立团。
除此之外,机关、医院、伤病员和勤杂人员加起来也有数千人。部队渡过黄河后,开始和马家军作战。由于之前没有和马家军交过手,缺乏对骑兵作战的经验,古浪一战第9军虽然歼敌2000多人,但自身也付出了2000余人的伤亡代价。军长孙玉清负伤,25师师长王海清、27师政委易汉文和不少干部壮烈牺牲。
在之后的半个多月时间里,西路军又和敌人进行了五次恶战。第一次是十里铺战斗,30军88师和89师一个团在十里铺和敌人五个团血战三昼夜,毙伤敌军2400余人,自身伤亡500余人,其中263团一个连全部拼光;第二次恶战是永昌东南八坝之战,30军在这里和敌人两个旅血战两个昼夜,毙敌800余人;第三次是永昌以西水磨关之战,30军88师和89师一部在这里和敌人机战一昼夜,毙敌600余人。
第四次是永昌之战。30军一部和总部直属队在这里和五个旅的敌人进行了一番血战,经过白刃战将敌人杀退,毙伤敌军2000余人,还击落了一架敌机。第五次是山丹之战。第5军在这里和敌人两个旅血战了两个昼夜,最终将敌人打退,歼敌数百人。古浪之战加上这五次恶战,西路军一共歼敌6000余人,但自身也付出了极大的伤亡代价,部队由过河之初的21800人减至15000余人。
之后西路军又先后在高台、倪家营子和梨园口与敌人血战,兵力不足加上粮弹耗尽,付出了很大的伤亡代价,包括董振堂和陈海松在内的一大批高级将领壮烈牺牲。石窝会议之后,剩余的西路军将士分散突围,徐向前和陈昌浩返回延安向上级汇报。走到大马营一带时,二人分别,陈昌浩留在了当地一个老乡家里休养,徐向前继续向延安前进。
他打扮成羊倌的模样,沿着祁连山边的戈壁滩,一路乞讨,历经艰险之后到了打拉池。在镇子里理了发,洗了澡,用上级给的路费买了一套衣服,把自己打扮成了一个商人的模样,继续往北走。1937年4月中旬的一天,时任援西军第4军参谋长的耿飚在甘肃王家洼一带发现了一个形迹很可疑的商人,便带人上前盘问,这才发现来人正是徐向前。之后徐向前跟着耿飚来到了镇原援西军总部,在刘伯承的安排下,顺利返回了延安。