在越南北圻的清軍,分為東、西兩條戰線。東線主帥為新任廣西巡撫許延旭,駐諒山,所屬50余營,兩萬余人,分駐北寧、太原、高平、諒山等地。左路統領提督黃桂蘭,率部13營,防守北寧;右路統領道員趙沃,率部12營,先駐太原,後移防北寧。西線主帥為雲貴總督岑毓英,戰爭開始後率20營出關入越,進駐館司。新任雲南巡撫唐炯奉命出關統領入越滇軍,遲遲不進,駐守邊境上的新安所。黑旗軍統領劉永福和吏部主事唐景崧,率黑旗軍12營、桂軍兩營、滇軍3營,守山西。清軍在數量上占優勢,在地勢上也處於有利地位。但多數士兵系臨時招募,缺乏訓練,部隊員額不壹;武器裝備落後於法軍,火炮數量少,新式的後膛裝線膛開花炮更少;步兵僅部分使用較先進的步槍,且子彈缺乏;部分官兵士氣不高,糧餉供應不足,部隊紀律甚差,戰鬥力不強。其中唯劉永福善於用兵,唐景崧盡職盡心,他們率領的軍隊,將士用命,兵勇效力,屢創法軍,士氣高漲,是抗法戰爭中的壹支生力軍。
山西,位於河內以西近百裏,城垣緊靠紅江南岸,分內外兩城,內城磚石所壘,外城堆土而築,城圍約20裏,距河岸約5裏。該城系滇軍之前哨,北寧之犄角,紅江中上遊之戰略要地,控清軍東西線之主要通道。
法軍為占領北圻,把第壹個攻擊目標選在山西。當時,山西由劉永福、唐景崧率黑旗軍等部5000余人扼守,黃佐炎率越軍2000余人配合作戰。12月11日,法國侵略軍頭目孤拔率兵6000人,分水、陸兩路,從河內出發,進攻山西。水路有艦艇12艘,民船40余艘,載陸軍3200余人,溯江西上,陸路有陸軍2600余人,沿紅江南岸,直撲山西。14日約9時,法軍在城東北登岸,用艦炮摧毀了清軍沿岸炮臺,登陸步兵迅速展開,向黑旗軍陣地接近。黑旗軍依托河堤陣地,奮起還擊,使法軍遭受嚴重損失。下午,劉永福調來東門的黑旗軍主力,迂回到法軍的左側,插入法軍艦隊與步兵之間,使其兩面受擊,孤拔見勢危急,令法軍轉入防禦,集中所有炮兵,向迂回的黑旗軍轟擊,黑旗軍傷亡較大,被迫撤退。下午4時,法軍向堅守河堤的黑旗軍發起攻擊。黑旗軍頑強扼守,以排槍射向敵人,在短短的1個多小時裏,斃、傷法軍200余人。15日深夜1時,唐景崧組織桂軍和滇軍實施反擊,企圖奪回城北河堤陣地,激戰4小時,三進三退,未獲成功,便將城北守軍撤至外城,依托土圍,分段堅守。16日午後,法軍向城西運動,從城北、城西同時攻城,企圖奪取城西滇軍的據點。劉永福判明情況,率黑旗軍主力增援西門。16日拂曉,法軍多次攻擊北門和西門均未得逞,北門守軍傷亡較大,彈藥告竭。法軍進攻西門的炮火最猛,西門墻崩樓毀,滇軍無堅守之陣地,形勢危急。劉永福、唐景崧率部竭力堅守至夜,退出山西,轉至興化。17日,法軍攻占山西城,大規模屠殺居民,慘不忍睹。山西首戰失利,使清軍失去了威脅河內的前哨陣地,丟掉了控制紅江的的戰略要點,北寧陷於孤立,滇、桂兩軍聯系中斷,為東、西兩線清軍協同作戰增加了困難。
法軍攻占山西,由於傷亡較大,兵力不足,不敢輕率進攻北寧。1884年2月,法軍1個步兵旅、兩個炮兵隊和1個工兵隊到達越南,使法國總兵力增加到1.7萬余人,陸軍少將米樂接替孤拔為法國遠征軍總司令,孤拔返回海軍艦隊。米樂的總司令部駐河內,加緊了進攻北寧的準備。
北寧是清軍在北圻據守的戰略要地。南可拒河內,北可屏蔽諒山,西接山西,東近海陽,為北圻之樞紐,系中、法兩軍必爭之地。山西失陷後,北寧清軍受到來自海陽、河內、山西三個方向法軍的嚴重威脅,清廷十分驚恐,急令前敵主帥、廣西巡撫徐延旭添募營勇,增補軍械糧餉,出關督率防軍嚴密扼守,以固邊疆門戶;令兩廣總督張樹聲選得力將領,統帶勁旅,馳赴鎮南關(令友誼關),以實後路,命雲貴總督岑毓英,迅速率兵出關,拒守興化、宣光、臨洮。左宗棠令前福建布政使王行榜招募定邊軍8營,出關入越。清軍力圖固守北寧,阻止法軍繼續向滇、桂邊界發展,並相機收復山西和河內。
北寧守軍由左路統領廣西提督黃桂蘭、右路統領廣西道員趙沃***同指揮。經過1年多的準備,工事不斷加強,兵力逐步增加,到戰役開始前,總兵力已達58營,2.4萬余人。總指揮部設在北寧城中。1884年3月7日,法軍對北寧發起了進攻。8日上午9時許,法軍攻占扶郎,清軍外圍防線被突破,北寧側後受到嚴重威脅。12日,法軍水陸並進,兵分3路向北寧進攻,清軍不支,棄城而逃,退守太原、諒江壹帶,當日晚法軍進入北寧城。13日繼續追擊清軍,連奪太原、諒江、郎甲等地。北寧戰役歷時5天,清軍傷亡1000余人。
北寧戰役是中法戰爭初期階段的主力決戰,清軍的失敗,使法軍實現了控制紅江三角洲的戰略目標。消息傳到國內,朝野大嘩,清廷為之震怒。慈禧太後改組了以恭親王奕欣為首的軍機處,撤換了軍機大臣,委任禮親王世鐸和醇親王奕環管理軍機處,慶郡王奕劻主持總理各國事務衙門,重新任命了西南前線的重要官員。令湖南巡撫潘鼎新為廣西巡撫,統領桂軍;前福建布政使王德榜署理廣西提督(未授任);起用原廣西提督老將馮子材,速赴關外統軍作戰。
法軍在山西、北寧之戰後,1884年4月6日,法軍艦長、海軍中校福錄諾在香港交給前天津海關稅務司德璀琳(德國人)壹封信,要他轉交李鴻章,其主要內容是:1、要求中國同法國訂立條約,規定法國與中國西南各省的通商章程和稅關規則;2、中國應承認法國對越南的保護權;3、中國應立即將駐法公使曾紀澤調離巴黎;4、法國準備向中國索償軍費,且謀占地為抵押,如中國及早與法商議,法國尚可對此相讓。清朝廷本無抗法之堅定決心,北圻戰場的失敗,更加動搖了抗法保邊的信心,遂在4月30日的諭旨中說:“出師護越,越不知感,法又為難,兵連禍結,亦非萬全之策。”於是,任命力主妥協的李鳳苞代替曾紀澤為駐法公使,令李鴻章為全權代表與福錄諾在天津談判,5月11日簽訂了《中法簡明條約》。其主要內容是:1、中國南界毗連北圻,法國約明無論遇何機會或有他入侵犯情事,均應保全助護。2、中國南界既經法國予以實在憑據,不虞有侵占滋擾之事,中國約明將所駐北圻各防營即行調回邊界,法越所有已定與未定各條,均置不理。3、法國既感中國和商之決,並敬李大臣力顧大局之誠,情願不向中國索償賠費,中國亦宜許以毗連越南北圻之邊界所有法、越與內地貨物聽憑運銷,並約明日後遣其使臣議定詳細商約稅則務須格外和衷,其於法國商務極為有益。4、法國約明,與越南議改條約之內,決不插入傷礙中國威望體面字樣,並將以前與越南所立各條約關涉東京者盡行銷廢。5、此約既經彼此簽押,兩國即派全權大臣,限3月後,悉照以上所定各節,會議詳細條款。
《中法簡明條約》的簽訂,標誌著中法戰爭第壹階段的結束,宣告了清政府承認法國對越南的占領。清政府的這種忍辱求和的軟弱態度,助長了法國侵略者的氣陷,導致了更加嚴重的後果。(參見《國防歷史》(中),王中興、劉立勤編著,軍事科學出版社.