(一)兵分兩路,奪取定西
洪武二年十月,元大將王保保在得知明朝大將軍徐達返回京師應天的消息後,又開始肆無忌憚地派兵南下騷擾明朝邊境地區。十二月二十九日,王保保率兵襲擊蘭州,直抵城下。明朝蘭州守將張溫立即召集各部將官,對他們說:“如今敵眾我寡,難以與之戰。然元軍遠道而來,還不知道我軍多寡,我軍可在晚上偷襲之,挫殺敵人的銳氣,敵人不退我們可以固守以待援兵。”當天晚上,張溫就乘敵人新到,立足未穩,人疲馬乏之機,集合城中兵馬,悄悄打開城門,摸黑向敵軍發起突然襲擊。王保保雖然屢經征戰,但是對張溫的這種大膽舉動還是沒有充分的思想準備,因此在張溫部隊的猛烈衝擊下,被打得狼狽不堪,紛紛退卻。不過,王保保最終還是倚仗人多勢眾,抵住了張溫的進攻。黎明時分,張溫及時收兵回城。隨後,王保保又率兵將蘭州城重重包圍起來。張溫為了保存實力,堅守城頭,不再出戰。
駐守鞏昌的明朝將領於光得知王保保兵圍蘭州的消息後,迅速率部趕來增援,結果在蘭州城外馬蘭灘突然遇上了王保保的軍隊,於光不幸戰敗被俘。元兵將於光押到蘭州城下,強迫他叫張溫出城投降,不料於光卻對城上守軍大聲喊道:“我不幸被執,公等堅守,徐總兵(指徐達)將大軍行至矣!”元軍大怒,將他殺害。城中守軍聽了於光的這番話後,士氣高漲,守備更加堅固,而王保保又擔心於光所言當真,徐達率大軍前來自己不支,因此自蘭州撤圍而去。
洪武三年正月初三,由於王保保一再舉兵南侵,成為西北的嚴重邊患,在加上元順帝及其幕僚北逃後還未被消滅,明太祖再次詔令右丞相、信國公徐達為征虜大將軍、浙江行省平章李文忠為左副將軍、都督馮勝為右副將軍、禦史大夫鄧愈為左副副將軍、湯和為右副副將軍,命令他們率師北征沙漠,掃蕩元朝殘餘。出征前,明太祖問徐達等道:“元主遲留塞外,王保保近以孤軍犯我蘭州,其誌欲僥幸尺寸之利,不滅不已。今命卿等出師,當何先?”徐達等回答說:“王保保之寇邊者,以元主猶在也。若以師直取元主,則王保保失勢,可不戰而降也。”但是,明太祖認為徐達等提出的方案不是很好,他命令徐達等兵分兩路,一路由大將軍徐達率領自潼關出西安,搗定西,以取王保保;另一路由左副將軍李文忠率領,出居庸關,入沙漠,以追元主。這樣使其彼此不能應援。徐達等表示讚同並即日起程北征。
與以往明顯不同的是,徐達這次掛印出征,所率人馬從一開始就被一分為二,他們不僅分工不同,而且是在兩個相距甚遠的區域同時作戰。其中,西路軍由徐達親自指揮,主要任務是征討屢犯西北地區的王保保;東路軍主要任務則是追擊逃居漠北的元朝舊主元順帝。從當時的情況來看,明朝官兵兩路同時出動,如果進軍都比較順利,或者其中一路能夠率先取得決定性的勝利,則勢必使元順帝與王保保之間不能互相救援,大大增加明朝軍隊取得全麵勝利的把握;倘若其中一路先行失利甚至潰敗,則另一路必將遭到元軍的全力反攻,從而麵臨更大的軍事壓力,不但難以取得理想的出征效果,而且有可能同樣遭遇不測,最終導致戰爭的全麵失敗。正因如此,看似沒有多大關聯的兩路官兵,實際上是生死相係的。
甘肅定西距離明朝京師路途遙遠,道路崎嶇,徐達費時兩個多月,直到三月二十九日才率領西路軍經潼關、西安,抵達定西州。就在徐達一路跋山涉水,馬不停蹄地趕往西北的時候,王保保由於入侵蘭州未得手,仍心有不甘,在洪武三年正月率兵奪取了定西州的西巉,並以此作為據點,四處擄掠定西及周邊地區百姓。盡管王保保曾多次敗在徐達手下,對徐達心存畏怯,但他依仗著自己手下的近十萬兵馬,下決心要與徐達一決雌雄。為此,他迅速退兵至地勢更為險要的車道峴,搶占了有利的地形。不久,徐達率部離開安定城,進駐沈兒峪,派遣部將鄧愈率兵馬逼近王保保駐地,在敵人營壘附近一條深溝的另一側安營紮寨。爾後,雙方連戰數日,難分勝負。但是,由於王保保是率部渡過黃河、跨越長城遠道南侵,其糧草等物資供應困難,而他所駐之山區雖然地形複雜,易守難攻,卻也難以外出掠取給養。而徐達在距車道峴不遠的蘭州、會寧等地都有駐兵,相當於本土作戰,糧草、兵員等補給十分充足。如果雙方的對峙局麵持續下去,對王保保勢必更加不利。王保保長年征戰,自然清楚自己的處境,所以他在與徐達對陣拚殺的同時,企圖出奇製勝,盡快擊潰徐達,結束這場戰爭。