兩軍對壘。義軍都穿著絳色的衣服,在綠色的原野上齊齊整整地站成一個三角形——三銳陣,甚是奪目。(《宋史·狄青傳附張玉傳》)宋軍分前後左右中列陣,宋將孫節、祝貴為前,石全斌為左,劉幾為右,狄青、孫河、餘靖居中,李定殿後。同時狄青令騎兵秘密繞行到義軍後方埋伏。狄青戴著一副銅製的麵具(這是狄青作戰的習慣),甚為猙獰。儂智高身穿一件紅色的戰袍,馬大人高,忽然直衝而出,猶如一團飛舞的火焰。義軍一起呐喊,地動山搖。餘靖膽怯後退,被孫河大聲嗬斥。此時,左前鋒孫節亦拍馬向前,直奔一個高坡。孫河大喊:“這裏是爭奪地利的地方嗎?”話音未落,儂智高閃電般投出長槍,孫節躲閃不及,護胸鏡就被儂智高的投槍擊穿,落馬而死。狄青失聲驚呼。祝貴接上收羅孫節殘部,以免逃散。而同一時間,右前鋒賈速率軍從另道衝上,占領了高坡。劉幾率右路軍衝出與義軍搏殺,混戰了兩個時辰,勝負未決。真是將在外,軍令有所不受。劉幾向狄青建議,使用騎兵衝擊義軍。這時,賈速順山勢往下直衝,硬把儂智高的戰陣切開,分成兩塊。狄青看見,急忙命令張玉等率左右廂5000鐵騎出擊,發火箭命令繞行到義軍背後的騎兵先鋒和斌率騎突然殺出,左衝’右突。義軍被分割夾擊,又缺乏對付騎兵的經驗,大敗。皇佑五年(1053年)二月九日的南寧三塘,血肉橫飛,屍體遍野,無數年輕的生命在此毀滅。是役,起義軍被殺2200人,重傷者3300人,軍師黃師、儂智高的弟弟儂智忠等57名將領被俘,喪失物資錢財大批,損失慘重。歸仁鋪血戰的布陣與搏殺場麵是非常宏大且慘烈震撼的。莫炳奎在《邕寧縣誌》裏說,狄青回京後,宋仁宗還命令他在宮裏把戰鬥過程演示一遍。(《宋史·和斌傳》)
歸仁鋪戰罷,賈遴為自己在戰場上擅自行動向狄青請罪,狄青拍拍他的後背說:“我還得獎賞你呢!這樣吧,你可以進豈州城去隨便拿點東西。”賈遴謝絕了。《宋史·賈述傳》載:“豈州城空,青使速人括公私遺墜,固辭。是時,將校多以搜城故匿竊金寶,獨遴無所犯。”
宋軍乘勝追擊至豈州城北。儂智高寡不敵眾,棄營而逃。關於這件事,有的史書記載說是“焚城而走”,有的則是“焚營而走”。據專家分析,焚燒豈州城是必須經過一番準備的。歸仁鋪一戰,心雄誌壯的儂智高根本就不會想到他會失敗,自然是不會有焚城的準備,而兵敗後宋軍緊緊追趕,他連撤退家屬都來不及,還有什麼時間去燒城燒營?
儂智高為了迷惑宋軍,使了一出金蟬脫殼之計,在路邊給一個士兵屍體穿上自己的金龍紅衣,旁邊放了個金龍盾,而後自豈州沿右江逃往雲南。其子儂宗旦等沿左江撤退。至和二年(1055年)四月,儂智高死在大理。
戰爭結束了,北宋在事實上卻認可了儂智高歸附的請求,儂智高的家鄉廣源恫被北宋設立為順州,陶弼為州刺史,楊文廣、蕭注等大批將領進人左、右江地區招撫了大批壯族酋長,在左、右江地區設寨駐軍,實施管理,設立好場、學校。不久,蕭注出任邕州知州,李師中出任桂州知州、廣西安撫經略使。皇佑五年(1053年),朝廷大表戰功,狄青升為樞密使同平章事。皇佑六年(1054年),宋仁宗認為楊文廣在這場戰爭中表現出了統禦軍事之才,於是破格提拔,連升四級,以供備庫使出任廣西鈴轄、兼豈州知州與宜州知州,駐守邕州,成為廣西一路總兵官,前後達七年之久。楊文廣在經營廣西的過程中浮出北宋軍界,並在後來對西夏的作戰中逐步成就他的人生輝煌,後來為宋朝禁軍的七大將領之一,實現楊門中興。
(《宋史·楊業傳附楊文廣傳》)
另一方麵,蕭注一直都沒能解決在今大新一帶活動的儂宗旦小股義軍。直到嘉佑三年(1058年),廣西轉運使王罕致信儂宗旦:“汝父內為交趾所仇,外為邊將希嚐之餌,非計也。汝歸服,擇利而為之。”(《宋史·五矽傳附王罕傳》)於是,儂宗旦接受招撫,“歸明出宋”。熙寧二年(1069年),儂智會(智高弟)上書歸附,被任命為古勿同知。熙寧二年(1069年)九月,儂智會被授予右千牛衛大將軍。(《宋史·神宗本紀》)熙寧八年(1075年),儂智會擊敗在廣源州叛亂、劫掠州的劉紀。這樣,至宋哲宗時期,左、右江各恫壯族人民都先後順應民族融合的趨勢,接受宋朝中央的管理。