孔明親自駕著小車,帶領數百騎兵前來探路。他們遇到了一條河,名叫西洱河,雖然水流不算湍急,但河面上卻沒有一隻船或筏子。孔明便命令士兵們砍伐樹木做成筏子渡河,然而這些樹木一放到水裡就沉了下去。
於是孔明詢問呂凱,呂凱說:“我聽說西洱河上游有一座山,山上竹子很多,有的竹子粗得需要數人合圍。可以讓人去砍伐這些竹子,然後在河上搭起竹橋,這樣軍馬就可以渡過去了。”孔明便調派三萬人入山,砍伐了數十萬根竹子,順著河水放下去,在河面狹窄的地方搭起了竹橋,橋寬十多丈。
然後孔明調集大軍在河北岸一字排開紮下營寨,以河為壕塹,以浮橋為門,壘土為城;過橋到南岸,又一字排開紮下三個大營,以等待蠻兵的進攻。
與此同時孟獲也帶著他的數十萬蠻兵氣勢洶洶地殺了過來。當他們接近西洱河時孟獲帶著前部一萬名刀牌獠丁直撲前寨挑戰。孔明頭戴綸巾身披鶴氅手執羽扇乘坐四馬拉的車左右眾將簇擁而出。他看到孟獲身穿犀皮甲頭頂硃紅盔左手挽牌右手執刀騎著赤毛牛口中辱罵著;他手下一萬多名洞丁也都揮舞著刀牌往來衝突。
然而孔明卻並不急於應戰而是急令退回本寨四面緊閉寨門不許出戰。蠻兵們都裸衣赤身地在寨門前叫罵著挑戰著蜀軍的忍耐力。蜀將們都十分憤怒紛紛請求出戰孔明卻始終不允許。他說:“蠻方之人不遵王化現在他們氣勢正盛我們不能正面迎擊。應該堅守數日等他們疲憊懈怠了我們再用妙計破之。”
於是蜀兵們堅守了數日沒有出戰。孔明在高地上觀察蠻兵的情況發現他們已經有些懈怠了於是便召集眾將說:“你們現在敢出戰了嗎?”眾將都欣然表示願意出戰。孔明便先喚來趙雲、魏延兩人低聲吩咐了一番讓他們按照計策行事;然後又叫來王平、馬忠也囑咐了一番;接著又叫來馬岱說:“我現在要放棄這三座營寨退到河北去。我軍一退你就拆掉浮橋移到下游去然後接應趙雲、魏延的軍馬過河。”馬岱領命而去。
孔明又叫來張翼說:“我軍退去後你要在寨中多設燈火。孟獲知道我們退了必定會來追趕到時候你負責斷後。”張翼也領命而去。最後孔明只讓關索保護他的車仗眾軍隨後退去寨中卻燈火通明讓蠻兵們不敢輕易進攻。
第二天一早孟獲帶著大隊蠻兵直撲蜀寨而來卻發現三座大寨都空無一人只留下了數百輛糧草車仗。孟優有些疑惑地說:“諸葛亮棄寨而走莫非有什麼詭計嗎?”然而孟獲卻自信滿滿地說:“諸葛亮肯定是因為國內有緊急之事才不得不棄下輜重而逃。如果不是吳國入侵就是魏國來犯。所以他才故意佈下疑兵之陣虛張聲勢地留下燈火和車仗來迷惑我們。我們現在應該迅速追擊不要讓他跑了。”
於是孟獲親自率領前部追擊一直追到了西洱河邊。然而他們卻發現河北岸上的蜀軍營寨中旗幟整齊如故燦若雲錦;沿河一帶又設立了新的防線讓他們無法過河。孟獲對孟優說:“這是諸葛亮怕我們追趕所以在河北岸稍作停留。不出兩天他肯定會繼續逃跑的。”於是孟獲便將軍隊屯駐在河岸邊上同時又派人去山上砍伐竹子做成筏子以備渡河之用;並將敢戰之兵都調到了寨前準備隨時出擊。
然而他們卻不知道蜀兵其實早已經進入了自己的領地之中。就在當天狂風大起四壁廂火明鼓響蜀兵們從四面八方殺了過來;而蠻兵們自相沖突亂成一團。孟獲大驚失色急忙帶著宗族和洞丁們殺開一條血路往舊寨方向逃去。然而他們卻迎面撞上了趙雲率領的一彪軍馬;孟獲慌忙掉頭往西洱河方向逃去想要找個偏僻的地方躲藏起來;可是卻又遇到了馬岱率領的另一彪軍馬截殺過來;最後孟獲身邊只剩下了數十個殘兵敗將逃進了山谷之中。他們看到南、北、西三處都有塵頭火光知道蜀軍已經包圍了過來所以不敢再往前走只得往東邊逃去。當他們轉