西晉時期,鮮卑禿發部在隴右地區的勢力迅速強大起來。泰始六年(270)六月,禿發部首領樹機能起兵,將西晉首任秦州(治今甘肅甘穀縣東)刺史胡烈殺死於萬斛堆,並在金山打敗了西晉涼州(治今甘肅武威市涼州區)刺史蘇愉。為了平定那裏的叛亂,晉武帝司馬炎任命司隸校尉石鑒為安西將軍,都督隴右諸軍事,並任命杜預為安西軍司,給兵三百人及馬一百匹。到了長安(今陝西西安市西北)以後,杜預又被任命為秦州刺史,領東羌校尉。由於形勢危急,杜預馬不停蹄地趕到了秦州。讓他沒有想到的是,剛到秦州,他的頂頭上司安西將軍石鑒就命他立即率兵出擊兵強馬壯、以逸待勞的樹機能,這無疑是要置杜預於死地。當時,鮮卑禿發部的勢力很大,西晉派去鎮壓的將領,不是戰敗,就是被殺。杜預識破了石鑒的陰謀,不肯去送死,但又得給石鑒一個正當的理由,於是他向石鑒以獻計的方式說:“現在正逢秋天,隴右地區水草肥美,鮮卑人兵強馬壯,加之他們屢戰屢勝,士氣非常高昂;而我們的官軍則是剛剛遠道而來,糧草供應不濟,如果貿然出擊,勢必會勞而無功。不如我們先全力以赴儲運糧草,等到明年開春野無芻草之時,再出兵打擊人疾馬乏的鮮卑騎兵,這樣我們定能取得勝利。”杜預還向石鑒具體陳述了當前的“五不可”、“四不須”,這下可惹怒了石鑒,於是誣告杜預不聽調遣,並且擅自盜用軍資修飾城門官舍,將杜預送交給廷尉治罪。幸虧杜預是晉武帝的姑父,在能夠減免刑罰具有司法特權的“八議”之列,所以免去一死,但丟掉了爵位。
安西將軍石鑒不聽杜預的建議,沒有按照杜預給他謀劃的軍事策略用兵,貿然發動了對樹機能的進攻,結果被樹機能打敗。而他回到洛陽後卻虛報戰功,稱自己打了勝仗。杜預揭穿了他的謊言,結果石鑒被免了官。他們之間的矛盾更深了,鬧得朝廷上下沸沸揚揚。
泰始七年(271),南匈奴右賢王劉猛舉兵反晉,自並州(治今山西太原市西南)西及河東(今山西運城市一帶)、平陽(今山西臨汾市一帶)。此前一年,杜預的軍事才能雖因石鑒的嫉恨而未能得以發揮,但隴右地區的軍事形勢誠如杜預所預料的那樣,所以朝廷上下都深知杜預善於謀略,因而晉武帝下詔令杜預以散侯的身份在朝中出謀劃策,以平定並州地區的戰事。這一回,沒有了石鑒這樣的政敵的幹擾破壞,杜預的軍事謀略得到了充分的發揮,西晉很快就遏製了邊患,而且西北邊疆地區的防務、經濟、生產等都得到了整治和發展。
在隴右和並州地區的兩次退敵安邊軍事實踐中,杜預深思遠慮,足智多謀,顯現出了他作為軍事家和政治家的才能和遠見卓識,為日後他在平吳戰爭中出謀劃策、建立奇功做了演練。