惇帶領十萬大軍殺向新野。張飛聽說後,建議讓孔明去迎戰。而劉備卻表示,智謀靠孔明,勇氣則需要關羽和張飛,不能推卸責任。關羽和張飛出去後,劉備請孔明商議對策。孔明提出了一些具體的軍事部署,包括在豫山和安林埋伏軍隊,燒燬敵人的糧草,以及由趙雲帶領前部迎戰等。
然而,關羽和張飛對孔明的部署表示疑惑,他們問孔明自己將做什麼。孔明表示他將留守縣城。張飛嘲笑孔明只會坐在家裡,孔明卻嚴肅地表示,這是軍令,違令者斬。劉備也勸解關羽和張飛,表示運籌帷幄之中,決勝千里之外,他們應該聽從孔明的命令。雖然眾將都疑惑孔明的策略,但還是按照他的命令列事。劉備雖然也有些疑惑,但還是按照孔明的部署行事。
夏侯惇和于禁等人帶著軍隊來到了博望坡,他們分了一半的精兵作為前隊,其餘的則負責保護糧車前行。那時正好是秋天,秋風緩緩吹起。當人馬疾行時,他們看到前方突然揚起塵土。夏侯惇立刻命令人馬擺開陣勢,並問嚮導官:“這裡是什麼地方?”嚮導官回答說:“前面就是博望坡,後面是羅川口。”夏侯惇命令于禁和李典守住陣腳,自己親自騎馬到陣前檢視。
當看到敵軍前來時,夏侯惇突然大笑起來。其他人問他為什麼笑,夏侯惇說:“我笑徐元直在丞相面前,把諸葛亮誇得跟神仙一樣。現在看他用兵,竟然用這樣的軍隊作為前部來和我對抗,這就像是用狗和羊去與虎豹爭鬥一樣!我在丞相面前誇口,要活捉劉備和諸葛亮,現在看來,我一定能實現這個諾言。”於是他騎馬衝向前去。
趙雲也騎馬出來迎戰,夏侯惇罵道:“你們這些人跟著劉備,就像孤魂野鬼一樣!”趙雲非常生氣,立刻與夏侯惇交戰。兩人戰了幾個回合後,趙雲假裝敗退逃走。夏侯惇在後面追趕,趙雲跑了大約十里後,又回馬再戰,不久又逃走。韓浩騎馬前來勸諫說:“趙雲可能是在引誘我們,可能有埋伏。”但夏侯惇不聽,一直追到博望坡。突然一聲炮響,劉備親自帶領軍隊衝出來與夏侯惇交戰。夏侯惇笑著說:“這就是他們的埋伏兵!我今天晚上不到新野,就決不罷休!”於是他催促軍隊繼續前進。劉備和趙雲則退後逃走。
當時天色已晚,烏雲密佈,又沒有月光,白天起的風到了晚上變得更大。夏侯惇只顧著催促軍隊追趕。當於禁和李典趕到一處狹窄的地方時,他們發現兩邊都是蘆葦。李典對於禁說:“欺敵者必敗。這條路很窄,兩邊都是山,樹木叢生,如果他們用火攻,我們怎麼辦?”于禁說:“你說得對,我應該去告訴都督。”於是李典勒馬回去,大聲叫後面的軍隊慢行,但已經來不及了。于禁騎馬大叫讓前軍都督停下,夏侯惇正走著,見於禁從後面奔來,便問他為什麼。于禁說:“這條路很窄,兩邊都是山,樹木叢生,他們可能會用火攻。”夏侯惇這才猛然醒悟,立刻命令軍隊停止前進。但話還沒說完,後面就傳來震天的喊聲,只見火光沖天,兩邊的蘆葦也燒了起來。一時間,四面八方都是火,而且風勢很大,火勢越來越猛。曹軍的人馬在火中自相踐踏,死傷無數。趙雲率軍回擊,夏侯惇冒著濃煙和烈火逃走。
李典看到形勢不妙,急忙逃回博望城,但在火光中遇到了一隊軍隊攔住去路。領頭的將軍是關羽。李典與他混戰一番後,奪路而逃。于禁看到糧草車輛都被火燒燬,便沿著小路逃走了。夏侯蘭和韓浩去救糧車,卻遇到了張飛。他們戰了幾個回合後,張飛一槍刺死了夏侯蘭,韓浩也逃走了。一直殺到天亮,才收兵回營,戰場上屍橫遍野,血流成河。
後來有人寫了一首詩來描述這場戰鬥:博望相持用火攻,指揮如意笑談中。直須驚破曹公膽,初出茅廬第一功!夏侯惇收拾了殘軍,自己回許昌去了。
卻說諸葛亮指揮軍隊回到營地。關羽和張飛兩人相互議論道:“諸葛亮真是個英雄豪傑啊!”他們走了沒多遠,就看見糜竺和糜芳領著一隊士兵簇擁著一輛小車過來,車中坐著的正是諸葛亮。關羽和張飛立刻下馬,跪拜在車前。不一會兒,劉備、趙雲、劉封、關平等人也陸續到達,大家集合軍隊,把繳獲的糧草和軍用物資分賞給將士們,然後班師回新野。新野的百姓看到他們的軍隊回來,紛紛望塵遮道,向他們行拜禮,說:“我們能夠保全性命,都是因為使君您得到了賢人的幫助啊!”
諸葛亮回到縣裡後,對劉備說:“雖然夏侯惇被打敗了,但曹操一定會親自率領大軍前來。”劉備聽後有些擔憂,問道:“那我們應該怎麼辦呢?”諸葛亮回答說:“我有一計,可以抵擋曹軍。”