馬騰退兵後,劉備計劃攻擊宛城,調張飛率軍返回。董卓舊將張濟最初佔據弘農,金旋召集眾諸侯討伐呂布之時,李催等董卓舊將皆在亂軍中被殺死,眾諸侯集兵攻擊弘農,張濟見勢力懸殊,棄城而逃。
張濟沿洛陽退往宛城,時宛城郡城防守空虛,被張濟所部奇襲得手,張濟倚其為立足之地。後來汝南袁術趁張濟不備,派大將紀靈、張勳率領重兵趁夜奇襲,於亂軍中殺死張濟,奪下宛城。命謀士許子將為宛城太守,大將紀靈、雷薄統領精兵三萬駐守此地。
張濟死後,其餘部歸張濟之侄張繡統領,張繡無立足之地,見劉表手下地廣將寡,率軍前往投靠。劉表手下缺少兵將,張鄉來投,恰好相互利用,任命張繡為上庸守備,協助向朗對抗漢中張魯。
諸葛亮大軍此時駐守建平,聞劉焉與馬騰相爭,西川重兵屯於梓潼,永安防守空虛,率領所部各軍攻取永安。永安守將嚴顏固守多日,漸覺不支,派人急往成都求援。劉焉聞報,命長子劉璋、謀士費緯盡起成都、建寧、江州三郡六萬兵馬來永安救援。
嚴顏頗知兵法,見諸葛亮所部兵精將勇,出戰幾次,均為諸葛亮設計擊敗。嚴顏前與金旋相戰於建平,大敗而歸,因此對金旋兵畏懼萬分,今見數戰不利,心生怯戰之意。永安城中糧草尚能支撐月餘,嚴顏決定堅守不戰,靜待援軍。
諸葛亮見嚴顏堅守,取出西川地形圖,潛思破敵良策。永安交通要路共有三條,一條往東直通建平,一條往北直通上庸,一殺往南直通江州,去上庸、江州的道路都狹窄險峻。忽有探子來報,西川援兵已過江州,正往永安兼程趕來。諸葛亮思忖一會,授黃忠、魏延、周泰、朱恆等四將密計,命其依計而行。
劉璋率領援兵匆匆趕路,未想到正步入諸葛亮精心佈置的埋伏圈內。黃忠、魏延、周泰、朱恆四將放過先頭部隊,候運糧車隊到達,群起而攻之,放火焚燒糧草。劉璋等人呼喝士兵前來救援,被黃忠等將所率精兵阻住。西川兵與黃忠等爭戰一會,見糧草將要焚燒完畢,劉璋一聲令下,退往江州而去。
黃忠四將焚燬糧車,回營請功,諸葛亮重賞四將,覆命黃忠、魏延兩將截斷江州通道,又授譚雄密計,讓其率軍伏於永安赴上庸要路,依計而行。
永安城中之糧,原本可食月餘,此時大批援軍入城,隨軍糧草均被焚燒,城中存糧頓時緊張起來,只能支撐七日。嚴顏盤點糧草,上報於劉璋,劉璋大吃一驚,聚眾商議。此時永安郡城內川將頗多,嚴顏、吳懿、雷同、陳式、董和、費緯、黃權等皆在城中。費緯獻計曰:「今諸葛亮足智多謀,所部人多勢眾,與其決戰必然不能取勝,只有固守一途,然而城中缺少糧草,七八日後,糧草斷絕,城中守軍必然不戰自亂。江州糧道,為諸葛亮派遣重兵阻住,不如遣使去上庸借糧。上庸為荊州王地盤,其與主公向來交好,若能借來月餘之糧,我軍燃眉之急可解。」眾將皆無異言,劉璋因為上庸太守向朗與董和私交甚厚,派陳式、董和前往上庸。
譚雄聽從軍令,已在此路上埋伏幾日,陳式、董和未走到百里,譚雄所部突起,將一行人生擒,押解回大營。諸葛亮親往說服兩將,陳式、董和歸降。
因為此事隱密,永安城中未得到訊息,過了幾日,城中糧草已盡,軍心慌張,劉璋命士兵殺馬充飢。
入夜,諸葛亮升帳點將,命令諸將分頭行事。魏延率領所部精兵萬餘,打著劉表旗號,詐為運糧之軍。守城兵將看見糧草押到,又見陳式、董和均在軍中,遂無疑心,忙不迭的打開城門。魏延精兵一入城中,立時趁勢奪門,殺散守門軍士,放火吶喊。
黃忠、譚雄兩將率大軍緊隨魏延身後,見其奪門成功,率領大軍殺入城中。永安守軍在黑夜裡不知敵軍虛實,城中亂成一片,費緯、黃權為黃忠生擒,余將保護劉璋退往江州。
劉璋在城外,聚齊敗兵,急急逃往江州方向。行至半途,周泰、文聘統領伏兵突起,劉璋所部此時軍無戰心,一觸既潰,川將吳懿被周泰所部生擒。嚴顏、雷同拚死殺出一條血路,救得劉璋,逃奔江州而去,其所部兵將,多為諸葛亮大軍設計困在山路上。
永安敗兵退路為周泰、文聘兩將率領精兵阻住,黃忠等將安民完畢,統領大軍從後追擊。永安敗兵無路可逃,劉璋、嚴顏等主將或逃或降,群龍無,只好投降。
永安大捷,諸葛亮派人赴長沙報喜。此戰諸葛亮所部共損折士兵不足五千,得西川降兵五萬餘眾,川將陳式、董和、吳懿、黃權投降,費緯不屈被殺。金旋授權諸葛亮便宜行事,不必事事到長沙請示,可行先斬後奏大權。凡是所率兵將,新得之地防務、政務,悉由諸葛亮自行處理,龐統所轄守備、副將,可持軍符調用。
諸葛亮使眾將收編降兵,命陳式為黃忠副將,吳懿為魏延副將,不與兵權,隨軍同行,以為嚮導。使黃權為永安太守,命董和率降卒五千,任桂陽守備,調原桂陽守備鮑隆為永安守備。諸葛亮統重兵駐紮永安,整頓兵馬,準備攻打江州。
劉璋、嚴顏、雷同等率領殘部逃到江州,江州太守鄧賢接眾人進城,嚴顏收集敗兵,只得一萬五千餘人。江州守兵只有一萬,劉璋見江州士兵單薄,決非諸葛亮大軍之敵,急忘使人赴成都告急。劉焉忙命劉巴為使,往蠻王孟獲處借兵。又命張松為使,再請劉備出兵相助。
劉備此時正在動戰事,關羽、廖化、范疆、糜竺等統三萬精兵留守新野,餘人張飛、周倉、孟達、糜芳、曹豹、張達、孫乾等,皆隨劉備起兵五萬,與孫策約期行動,兩路夾擊,進攻袁術。
袁術得到劉備、孫策起兵訊息,命令大將袁胤、張勳、胡車兒、韓忠率領三萬士兵駐守宛城,與紀靈、許子將、雷薄等率四萬士兵駐守汝南。孫策引黃蓋、韓當等將,以張昭為軍師,起兵三萬來到汝南城下紮營。
孫策安頓安畢,整兵往城下挑戰,袁術見孫策所部兵力有限,欲要率領諸將出城迎戰。許子將獻計曰:「孫策兵馬剛到,可使雷薄詐敗,以驕孫策之心。入夜主公守城,命紀靈與雷薄劫營,可一戰而定也。」