法國人很早就想占領越南。17世紀初,法國天主教傳教士開始到越南活動,充當侵略的先鋒。1858年,法國聯合西班牙,借口保護傳教,正式進攻越南,先後占領了廣安、西貢。1867年,法國把越南南部完全吞並,建立起法屬交趾那的殖民統治。
1883年春在以海軍軍官禮維業為司令的法國軍隊北上攻陷了河內,繼而占領寧平、南定等地。為了抵抗法國的侵略,越南政府忙向駐紮於中越邊境保勝(現在的老街)一帶的劉永福黑旗軍請求援助。
劉永福以前是廣東天地會的首領,太平天國起義時,他也起來響應。他的隊伍用七星黑旗作戰旗,被稱為黑旗軍。起義失敗後,他帶領黑旗軍占據了保勝。黑旗軍在這一帶開山種糧,力量逐漸壯大起來。麵對法軍的侵略氣焰,他們以抗法衛邊為己任,慷慨赴援,冒死衝鋒。在劉永福的指揮下,黑旗軍多次打敗法軍,使侵略者無法繼續向北進犯。
一天,幾個法國人突然來到保勝地帶,他們沒有帶任何武器,卻用馬車拉來了幾個裝著沉甸甸白銀的大箱子。他們是來找黑旗軍的,準備把幾箱子銀元送給劉永福。他們找到了劉永福,劉永福看了看這幾個大箱子,就明白了法國人的目的。劉永福怎會收他們送的銀子呢?法國人討了個沒趣兒,隻好帶著他們的銀子,灰溜溜地滾了回去。
法國人走後,劉永福立刻帶領黑旗軍南下,包圍了河內。
在河內的法國司令禮維業早就聽說過黑旗軍的厲害,現在黑旗軍把他給包圍了,他覺得不能在這兒待下去了,必須馬上離開,而且越快越好。天剛蒙蒙亮,禮維業就領著法國兵,悄悄溜出了河內。他們一連跑了幾十裏路,等到了紙橋,天已經大亮了。禮維業累得滿頭大汗,和士兵們一起倒在樹底下休息。在他看來,這次逃跑神不知鬼不覺,現在已經沒有危險了。他哪知道,黑旗軍早就在這兒埋伏好了,禮維業還沒躺穩,黑旗軍就發動了猛攻。跑了這麽遠,法國兵累得已無力作戰了,不一會兒,他們的死屍就倒成一片。禮維業見情況不妙,便掙紮著爬起來,用盡最後一點勁朝路邊的稻田跑去。沒跑多遠,就被黑旗軍一槍打倒。這時候,一個黑旗軍戰士飛快地衝過去,砍下了他的腦袋。經過三個多鍾頭的激烈戰鬥,黑旗軍取得了重大勝利。
接連失敗的法國人為了挽回麵子,向中國發動了全麵進攻。清政府也下令向法國宣戰。雙方在台灣和福建分別展開了激戰。台灣軍民在巡撫劉銘傳的指揮下,擊退了敵人的進攻。而福建海軍卻在馬尾海戰中失敗。七艘軍艦全部被擊沉,死傷達一千多人。不久,法國又向中越邊境大舉進攻。中國的守軍不戰而逃,法國人占領了中越邊境的重鎮鎮南關(現在的友誼關)。
鎮南關是中國西南邊境的大門,戰略位置十分重要。占領鎮南關後,法軍統帥尼格裏非常狂妄。他命人在鎮南關的城牆上寫了一行大字:“廣西的門戶,已不複存在了。”當地的中國百姓非常氣憤,便也在城牆上寫了一行更大的字:“我們要用法國人的頭顱,重築我們的門戶。”然後,他們紛紛來到清軍老將馮子材的大營裏,要求加入部隊趕走侵略軍。當地百姓的反法熱情一下子就高漲起來。這一切使尼格裏非常害怕。於是他放火燒毀了鎮南關,帶領法軍退到了文淵城。
馮子材來到被燒毀的關前,氣憤地說:“洋鬼子竟敢燒了我們的家門。這個仇一定要報!”他立刻命令部隊在關前東西兩座山嶺上修築炮台,並壘起一條三裏的長牆,把東嶺和西嶺連接起來。長牆的對麵,還挖了一條壕溝。
一天早晨,下起了大霧。馮子材得到報告說:“尼格裏趁著大霧來攻城了。”馮子材立刻找來了蘇元春、王德榜和王孝祺等將領。他講了一下自己的作戰計劃,然後命令各位將領馬上分頭行動。
尼格裏從文淵城殺出後,把隊伍分成了兩路。一路攻打東嶺,一路攻打長牆。他們在大炮的掩護下,依靠先進的武器,很快就登上了東嶺。洋鬼子們一衝進炮台,便把炮口轉向長牆開起火來。炮彈雨點一樣落在長牆上,炸得石頭磚塊亂飛。正麵的敵人也端著槍,“哇哇”怪叫著衝了上來。馮子材一麵指揮清兵奮勇還擊,一麵大聲鼓勵說:“弟兄們,為國報效的時候到了。千萬不能讓洋鬼子衝過長牆。不然我們還有什麽臉去見兩廣的父老!”這時候,王孝祺領人繞到法軍後麵發動了猛攻。蘇元春冒著猛烈的炮火,衝上了東嶺。兩方用大炮展開對攻,東嶺上炮聲隆隆,喊殺聲響成了一片。可是,凶猛的洋鬼子並沒有被打退。
就在這關鍵時刻,法國兵突然亂了起來。原來是有人向尼格裏報告,說王德榜率兵襲擊了文淵城。往前線送食品彈藥的運輸隊幾次都被王德榜打了回去。
馮子材看機會來了,就大吼一聲:“弟兄們,殺呀!”然後,他第一個跳出了長牆,揮舞著大刀朝洋鬼子衝了過去。戰士們一見七十多歲的老將軍帶頭往上衝,也都奮不顧身地殺向敵人。洋鬼子在大刀長矛麵前,嚇得四散奔逃,尼格裏也跟著往後逃跑。打退長牆前的敵人後,馮子材又指揮士兵向東嶺衝去。正在東嶺上與敵人進行炮擊的清軍見到這種情況後更加英勇頑強了。在蘇元春的帶領下,一個個像小老虎似的撲向敵人。法軍前後都挨打,隻好從東嶺上逃了下來。
尼格裏把兩路敗兵集中在一起,還想進行瘋狂的反擊。忽然,山穀四周傳來了一片呐喊聲,這聲音震得尼格裏和法國兵心驚肉跳。他們抬眼一看,隻見無數人像湖水一樣從四麵八方湧了過來。原來是周圍中越兩國的老百姓,支援馮子材來了。他們手裏拿著各種武器,有刀槍,有棍棒,還有幹農活用的鋤頭和鐵耙子。盡管武器落後,但他們沒有一個怕死的,都不顧一切朝洋鬼子衝去。馮子材不給敵人喘氣的機會,率領清軍窮追猛打,接連收複了文淵、諒山、北寧等地。在戰場上中國軍隊取得了全麵的勝利。