军向西连续攻克陇、秦、巩昌、兰州等地,进逼临洮,李思齐末路穷途,只好投降。
徐达命薛显进攻西宁,亲率主力进攻庆阳。
五月初,徐达连续攻下安定、会州、靖宁、隆德,经萧关前往平凉,一方面分兵进驻战略要地延安及泾州,另一方面派张涣率骑兵侦察庆阳的动静。
张思道早在明军攻克临洮时,便留下弟弟张良臣与部将姚军守庆阳,自己则逃往宁夏,结果被库库擒获。张涣派人招降张良臣,张良臣得知其兄被库库治罪,决定降明,但迅即又叛。
徐达下令四面包围庆阳城,张良臣恃险顽抗,并向塞外的库库求救。库库为救庆阳,兵分三路牵制明军,一路攻大同欲下太原,一路攻风翔,一路攻泾州。七月中旬,库库部将哈南下攻原州,致使战局为之大变。
徐达见库库兵势甚猛,暂取守势,命徐礼守驿马关、叶石真守彭原、韦正守郐州、傅友德、薛显守灵州,控扼各处要害。不久,哈布攻下泾州,致使徐达大军腹背受敌,幸得冯国胜自驿马关引兵来救,才将哈札儿击退。
八月上旬,张良臣在庆阳粮饷已尽,外援无望,其部将开城投降。数日后,库库派往大同和凤翔方面的军队,亦被明军击溃。