兵前來迎戰。姜維分別向張翼和夏侯霸佈置了任務兩人領命而去。然後姜維親自率領大軍背靠著洮水列陣。王經帶著幾名牙將出來問道:“魏國與吳國、蜀國已經形成了鼎足之勢你們卻多次入侵是為什麼呢?”姜維回答說:“司馬師無緣無故地廢掉皇帝我們作為鄰國理應問罪更何況我們還是敵對的國家呢?”
經過一場戰鬥後,張明、花永、劉達、朱芳四位將領回顧戰況,他們注意到蜀軍是背水一戰,如果失敗就會全部淹沒在水中。他們認為姜維非常勇猛,於是四位將領決定一起挑戰他。如果姜維後退,他們就可以追擊。四位將領分左右兩路出擊,與姜維交戰。姜維與他們交戰了幾個回合後,撥馬回本陣,看起來像是要逃跑。王經大驅兵馬,一起追趕姜維。姜維引兵向洮水方向逃跑,當接近水邊時,他大聲呼喊將士們努力戰鬥。眾將一起奮力反擊,魏軍大敗。張翼、夏侯霸從魏軍後面包抄,分兩路殺來,把魏軍困在中央。姜維奮勇殺敵,衝入魏軍之中,左衝右突,魏軍大亂,自相踐踏,死者大半,很多人被迫跳入洮水,被斬首的有一萬多人,屍體堆積數里。王經帶著百餘名殘兵敗將奮力逃出重圍,直奔狄道城而去,進入城中後閉門防守。姜維大獲全勝,犒賞三軍之後,打算進軍攻打狄道城。
然而,張翼勸告他說,現在功績已經很大,聲望也很高,應該適可而止。如果再前進,萬一不如意,就會像“畫蛇添足”一樣多餘。但姜維不這麼認為,他覺得之前兵敗的時候還想進取中原,現在洮水一戰魏軍已經膽寒,預計狄道城很容易就能攻下。張翼再三勸諫,但姜維不聽,於是率兵前往狄道城。
與此同時,雍州徵西將軍陳泰正準備起兵為王經報仇,兗州刺史鄧艾帶著兵馬趕到。鄧艾表示他是奉大將軍之命前來助戰。陳泰向鄧艾請教計策,鄧艾認為如果姜維在洮水得勝後招集羌人之眾東爭關隴,那將是他們的大患。但現在姜維卻圖謀狄道城這個城牆堅固、難以迅速攻下的地方,這隻會讓他們徒勞無功。因此他建議陳泰在項嶺陳兵然後進兵攻擊蜀軍他們必定失敗。陳泰贊同這個計策並先派出二十隊兵馬每隊五十人帶著旌旗、鼓角、烽火等物在狄道城東南的高山深谷中埋伏等待蜀兵到來時一起鳴鼓吹角為訊號夜間則舉火放炮以驚嚇他們。排程完畢後他們專等蜀兵的到來。於是陳泰和鄧艾各引兩萬兵馬相繼進發。
姜維圍住狄道城命令士兵從八面攻打但連續攻打數日都無法攻下他心中鬱悶無計可施。一天黃昏時分他突然接到幾次流星馬的報告說有兩路魏軍到來一路是徵西將軍陳泰一路是兗州刺史鄧艾。姜維大驚便請夏侯霸商議對策。夏侯霸表示鄧艾自幼深明兵法善曉地理現在領兵到來將是一個強勁的對手。但姜維認為他們遠道而來應該趁他們立足未穩就發動攻擊。於是他留下張翼繼續攻城命夏侯霸引兵迎戰陳泰自己則引兵迎戰鄧艾。然而行不到五里路東南方向突然一聲炮響鼓角震天火光沖天。姜維縱馬看去只見周圍都是魏軍的旗號。他大驚失色意識到自己中了鄧艾的計策。於是他下令讓夏侯霸和張翼放棄狄道撤退蜀軍全部退回到漢中。姜維親自斷後當他退入劍閣時才知道那些火光和鼓聲都是虛設的。最後姜維收兵退屯於鍾提。
後來後主因為姜維在洮西有功降下詔書封他為大將軍。姜維接受了職位上表謝恩之後再次商議出兵伐魏的策略。