軍情緊急,劉永福向雲南告急,並無回音。再向廣西催餉,亦無結果。餉銀就是朝廷所賞的十萬兩,指定由廣西藩庫墊發,徐延旭妒嫉劉永福和唐景崧的優旨褒獎,硬是不肯墊發,甚至連軍火接濟都停止了。這一來不但劉永福進關募勇的計劃落空,連向廣東「十三行」所買的四百桿洋槍,價款九千兩銀子都付不出,惹得商人大吵大鬧,最後迫不得已,只有出一張「領結」,備一角公文,請商人自己到廣西藩庫去「領價」。
黑旗軍還在愁兵愁餉,法國陸軍的斥堠,卻已迫近山西,幸好唐景崧奉旨所管帶的四營滇軍,到了三營。都是疲瘦短小的新兵,十個人分不到一枝洋槍,就有槍也不會用。不過,總算有了三營人。唐景崧跟劉永福商議,借他的旗幟號衣,將這三營新兵,全部換裝易幟,列坐在城牆外面。法國的先頭部隊,遙遙望見,心憚黑旗軍,不敢輕舉妄動。唐景崧的這齣變相「空城計」,總算有了效驗。
不過也只延宕了不多工夫。三天以後,法軍大舉進犯,水陸動用了十二條軍艦,四十艘民船,陸路有三千陸軍,後勤支援有五百車彈藥及夠一個月用的糧秣,浩浩蕩蕩,直薄山西。
調兵防守是由劉永福親自主持,陸路前敵由黃守忠扼守。山西城四門,亦都佈置了重兵,劉永福自己駐外城,唐景崧則駐內城,看守老營。至於黃佐炎的部隊,一共有兩千人,劉永福指定駐紮南門外的一個村落中,應該如何協同作戰,一無指示。
不但如此,劉永福還下了一道命令:禁止越南兵進城。
這是因為劉永福接到密報,說越南的山西總督阮廷潤私通法國,所以作此防範的措施。唐景崧不大相信,但黑旗軍大多這樣說法,也只好將信將疑了。
部署既定,劉永福召集諸將訓話,定下殺敵立功的賞格,然後與唐景崧巡視防務,主要的是北面紅河邊上的一條堤。堤高齊城,上設鐵炮,最大的不過八百斤重,要用它來轟擊法國軍艦,簡直是笑話!然而唐景崧怕動搖軍心,不敢說破。
※※※
法軍水陸兩途,都自東北進擊。黑旗軍迎頭擋了一陣,打了個小小的勝仗,殺了七個法國兵,割下腦袋,進城報捷。那知緊接著報來一個壞消息,河堤失守,黑旗軍已退入城內。劉永福急急下令閉城,並用令箭調黃守忠的部隊,包抄法軍後路。等軍心稍定,查問河堤失守的原因,才知道法軍炮彈,恰好打入河堤上的鐵炮炮口,轟然一聲,炮口炸裂,堤下清軍聞聲大駭,倉皇四散,牽動了黑旗軍的陣腳,以致不守。
劉永福氣得說不出話,唐景崧心裏自然很難過,召集部下三營官密議,預備奪回河堤。於是招募死士,定下賞格,首先登堤的,保升守備,請賞花翎。到了四更時分,發動突襲,無奈這天剛好是十一月十五,月明如晝,鬚眉可見,堤上的法軍,得以展開有效的防守,三進三見,死了六七十個人,仍舊不能得手,只好退入城內。
轉眼天明。劉永福下令盡撤全城入城,準備固守。那知城門一開,信奉天主教,親近法國的越南「教民」,趁機混進城來,良莠莫辨,而且身為客軍,無從阻止。劉永福的禁令,無形中廢除,果不其然,第二天法軍攻城,彼此轟擊了一天,到傍晚時分,越南軍民裏應外合,改著白衣,作了投降法軍的準備。
大勢已去,黑旗軍只好撤出山西,往南敗退。倉皇中不知唐景崧人在何處?劉永福痛不欲生,懸賞二萬兩銀子,募人入城救唐景崧。應募的一共六個人,無功而返。其實唐景崧已經逃出山西,與劉永福相遇於興化,兩個人抱頭痛哭,商量著整頓潰卒,反攻山西。
這一仗輜重盡失,第一件事就是要設法補充子彈。派人到北寧請領軍械,及朝廷所賞的十萬兩銀子。結果廣西提督黃桂蘭,只撥了不足一戰之用的兩萬發子彈,賞銀分文全無。
虧得時逢冬令,紅河水洩,法國軍艦航行困難,未能南下,戰事算是暫時停頓了。