張魯正不知要不要去援救劉璋,就見馬超挺身出,說:“我感謝主公收留,無以報答,願領一隻軍馬,南下進攻葭萌關,生擒劉備。”張魯大喜,於是點出兩萬兵給了馬超。原來,馬超在張魯這裏,得不到信任,暗中就有離去的想法。趁著機會,馬超帶著馬岱,領軍李戡漢中南下。龐德因為得病,隻好留在漢中養病。

劉備正商議進攻成都,忽然探馬來報,說:“孟達守衛葭萌關,被馬超攻打,情況危急。”劉備大驚,於是帶著張飛北上回去救葭萌關。

到了之後,第二天中午,劉備登上關成一看,就見馬超列陣在城下,在門旗影子裏,馬超手持長槍,騎著白馬,獅盔獸帶,銀甲白袍,英姿出眾。劉備歎說:“人們都說錦馬超,果然名不虛傳。”張飛就要下去,於是點齊五百騎兵,衝出城去。張飛挺槍出馬,大喊:“你認得燕人張翼德嗎?”馬超說:“我家世代是公侯,哪認得村野匹夫!”張飛大怒,於是二人殺在一起,兩槍並舉,打了一百多個回合,不分勝負。劉備觀戰,不禁說道:“真是虎將啊。”劉備怕張飛有閃失,就叫鳴金收兵。張飛回到陣中,稍微休息了一下,把馬也歇了歇,於是摘掉頭盔,頭上隻裹著包巾,再次上馬,又去向馬超挑戰。馬超又出來,和張飛戰在一起。劉備擔心張飛,親自披掛了,也下城來到陣前。看張飛和馬超又打了一百多回合,兩人都精神倍增,劉備就叫鳴金收兵。二將於是分開,各回本陣。

這時天色已晚,劉備就叫張飛回去。張飛哪裏肯回去,大叫:“誓死不回!”劉備說:“現在天色已晚,不能再打了。”張飛說:“可以多點些火把,安排夜戰!”馬超這時換了馬,再次出到陣前,喊道:“張飛,你敢夜戰嗎?”張飛更來了勁頭,也換了馬,衝上陣,叫道:“我不捉了你,誓不回去。”馬超說:“不打敗你,我誓不回營。”兩軍一起呐喊,點起千百隻火把,照得就像白天一樣。張飛、馬超又在陣前廝殺,打二十幾個回合,馬超撥回馬便走。張飛大叫:“你往哪裏走!”原來馬超一看贏不了張飛,就假裝敗走,偷著把銅錘捏在手裏,扭回身瞅著張飛,飛打出去。張飛見馬超敗走,心中也提防了,等銅錘飛來時,張飛一閃,從耳朵邊擦了過去。張飛於是撥馬往回走,馬超又追來,張飛彎弓搭箭,回射馬超。馬超卻一把閃過。

兩員大將各自回到本陣,收兵回去。第二天,張飛又要出去挑戰,忽然一人上前說道:“馬超是當今虎將,如果與張將軍死戰,必有一傷,我有辦法,可以叫馬超歸降主公。”劉備一看,是建寧郡俞元人,姓李名恢,字德昂。本是劉璋手下,自從劉備來到葭萌關後,就轉而投奔了劉備。劉備說:“我看馬超英勇,很是喜歡。先生怎麽才能讓他來歸降?”李恢說:“我從前在隴西,跟馬超有一麵之交,可以去勸說他歸降。”劉備大喜,立刻派李恢前去。