1894年上半年,朝鮮東學黨暴亂波濤洶湧,6月3日,驚慌的朝鮮政府正式請求清國出兵。李鴻章連夜簽發征討東學黨的命令,大軍調動隨即開始。
直隸提督葉志超率2,465名士兵攜山炮4門、臼炮4門,分乘三艘汽船從天津大沽和山海關出發,兵發朝鮮仁川以南的牙山。
6月8日,總兵聶士成率先頭部隊乘“圖南”號到達牙山,摩拳擦掌,準備一舉蕩平東學黨起義軍。但此時,朝鮮東學黨迫於壓力自行解散,局勢轉緩,清軍只得就地駐紮。至6月22日,包括後來增加計程車兵400名、馬70匹從相繼抵達牙山,清國軍隊基本部署到位。
出人意料的是,與此事毫無關係的日本在沒有徵得朝鮮的同意情況下,卻強行出兵,令清政府和朝鮮十分恐懼,當然,日本的狼子野心世人皆知。
日本於6月5日開始動員,第五師團編制下的混成旅團8.000兵力奉命開赴朝鮮。
這樣一觸即發的對峙局面,引起國際社會廣泛關注,並要求清日兩國同時撤兵,清政府幼稚地想透過各種交涉勸退日本軍隊,達成雙方一致退兵的意願,這豈不是與虎謀皮、天方夜譚?
果然,清日談判破裂,形勢緊迫,李鴻章開始向朝鮮大舉增兵。
清軍步兵1,300名於7月21日分乘英國汽船“飛鯨”、“愛仁”號從大沽出發,24日在牙山登陸。
緊接著天津練軍、親兵營等計1,200名官兵,炮12門,於23日午後乘英國汽船“高升”號從大沽出發,命中註定這是一次不歸的、悲慘的旅程。
“高升”號25日早晨到達牙山近海時,隱隱聽到遠方傳來激烈炮聲。後來知道是護送第一波次清軍後返回的清國海軍“濟遠”、“廣乙”兩艦,與日本艦隊遭遇,發生戰鬥。
“高升”號英國人船長自視懸掛英國旗,竟直闖戰鬥海域,捲入兩軍戰鬥,被日艦攻擊沉沒。1200名官兵葬身大海,為國捐軀!
結果增援牙山的部隊只有1,300名,朝鮮半島的清軍總兵力僅有3880名,大炮8門。
這下,日本可以光明正大的要驅逐清軍了,這是多麼可恥的行為。
7月21日,牙山葉志超接到清國公使館的緊急通報,日本公使強迫朝鮮政府答應驅逐清軍,我軍必須做好與日軍作戰的準備。
7月28日,聶士成因牙山地勢不利,立即移師相距20公里的成歡佈陣。他即率2040名清兵、炮8門前往成歡。翌日,後期增援的千名清軍在成歡與聶軍匯合。
成歡是全州通往漢城的重鎮,聶士成選擇了適於防禦作戰的陣勢地形,並積極構築野炮陣地和堡壘掩體工事。
清軍主帥葉志超卻率千人坐鎮聶軍後方。大敵當前,葉帥不與聶軍並肩戰鬥,卻分兵兩路置於聶軍後方而遙遙相望,似是作為後援,實則畏難苟安,這種違背作戰原則的戰法,使日軍百思不得其解。
7月25日,大島混成旅團步兵3500人、騎兵47騎、山炮8門從漢城向牙山進發準備驅逐清軍。7月27日,日軍偵察得知清軍主力已經移師成歡,兵力約3500人。
29日晨,清國部隊天津武備學堂畢業的學生周憲章,餘光炘、李國革、辛得林等10名兵士冒雨偵察敵情,得知日軍前哨已經接近清軍防區,立即率領數十名清軍在駐地以北的狹窄要道伏擊日軍。
3時20分,日軍先頭小分隊突然遭到清軍阻擊,陷人混亂,許多士兵跌人河中,不少人受傷。被伏擊的日軍很快恢復鎮定,向清軍展開反擊,雙方激戰30分鐘,周憲章等20餘名清兵戰死。
戰鬥中日軍企圖迂迴包抄清軍陣地,小隊長山襲造中尉等22名士兵,在泅渡過河時陷人河床泥之中全部溺亡。
28日午夜12點,日軍冒雨從露營地出發,29日凌晨3點到達令預定位置。6時10分,部隊向清軍所佔高地月峰山等發起進攻。聶士成指揮部隊憑藉有利地勢猛烈射擊敵軍,壓制了日軍的進攻。此時,日軍炮兵向清軍陣地發起猛烈炮擊,敵榴霰彈空中開花,清軍傷亡慘重,可是清軍炮兵陣距敵甚遠,居然無法打到敵軍炮陣地。
在敵優勢炮火轟擊下,清兵陣地開始動搖,接著開始大面積潰退。駐守天安的葉志超聞知前方戰鬥,心中膽怯,按兵不動,沒有出手增援聶軍。
聶軍迫於日軍漸趨包圍之勢,丟棄重武器向天安方向遁逃,途中與葉志超軍相遇,兩人決定放棄成歡向全州方向撤退。敗退的清軍因丟棄糧草而一路無米做飯,沿途盡然洗劫朝鮮百姓的食品財物。
成歡戰鬥中敗下陣來狼狽不堪的清軍,給朝鮮人留下了深刻印象。尤其是逃跑中軍紀渙散的可恥舉動,改變了朝鮮民眾的立場。怨聲載道的朝鮮百姓從此視清軍為仇敵,開始對作戰勇猛,軍紀森嚴的日軍表現出友善態度。
成歡戰鬥結果:清軍死傷500餘人、遺棄大炮8門、帳篷90頂、步槍30支、大量槍炮彈藥、軍旗30餘面。日軍戰死數39人,其中將校戰死1人、溺死1人、負傷4人;兵卒戰死14人、溺死23人,負傷50人,繳獲的大量軍糧及時補充了食糧短缺的前線部隊。