日軍沒有料到清軍敢反擊,一時間沒能組織起防線,被第六旅沖破陣腳。第六旅順勢突入日軍的陣中,但日軍畢竟是數倍于第六旅的兵力,一旦第六旅陷入日軍的重圍,後果不堪設想。劉飛揚連忙讓宋慶把清軍都壓過去,幹脆一不做二不休,反攻了。
在陣前指揮的野津道貫面對清軍的突然反攻,一時反應不及。第六旅很快就要沖到他的面前。野津道貫的衛隊趕忙架起他,向後就跑。
日軍對清軍的反擊,驚慌失措,又沒有了指揮,紛亂的後退。第六旅一路突襲,清軍跟在他們的後面追擊日軍,遼河東岸的日軍潰不成軍。
清軍追了二十幾裏地,一路日軍的大炮槍械丢的一地都是。日軍進攻遼河西岸的第一師團和第八師團的一個旅團傷亡兩千多人,被清軍俘虜的有一千多。
遼河東岸的大潰敗傳在大榆嶺和楊樹溝,日軍也隻好趕緊撤退,否則就有被清軍包圍的危險。北路奧保鞏率領的日軍後撤到海城,南路的第七師團則緊跟着野津道貫退進了營口。
劉飛揚則讓新軍第二師和宋慶部前插至高坎,切斷日軍營口與海城的聯系。但劉飛揚也無力去進攻有堅城防守的日軍,而日軍兩部被斷,大炮丢失殆盡,也不能對清軍再攻擊了,就這樣兩軍暫時在遼東對峙。
······
12月22日,台灣水師從日本回到黃海,向威海海域尋日本聯合艦隊與之相戰。
此時,把北洋水師堵在威海衛港内的日本聯合艦隊有四千噸級巡洋艦:吉野号、嚴島号、橋立号;三千噸級的巡洋艦:高千穗号、秋津洲号、浪速号;兩千噸級的驅逐艦:千代田号、比睿号。
台灣水師有:八千噸級裝甲艦:定海艦;三千噸級巡洋艦:狂濤艦、巨濤艦;兩千噸級的驅逐艦:一清艦、江清艦、山清艦、年清艦和一些炮艇、魚雷艇。
應當說雙方的實力差不太多,雙方如果對戰,勝敗未可知,而且勝也隻能是慘勝。但是威海之内還有北洋水師,如果能打開威海衛的出海口,把北洋水師接出來參戰,那在實力上就日本聯合艦隊高出一大籌。
上午10時,台灣水師背着陽光,分成兩隊,以15節的航速從正東面和東北面趁日本聯合艦隊不知其到來,殺向日艦。
日本聯合艦隊此時還分散在威海衛出口的海域,日本的第二遊擊艦隊在東面海域巡遊,它是最先發台灣水師的戰艦。爲了給分散在海海域的聯合艦隊争取時間,第二遊擊艦隊迎上台灣水師的第一艦隊。
日本的第二遊擊艦隊有高千穗号和比睿号組成,而台灣水師的第一艦隊由定海艦、巨濤艦、江清艦、山清艦和炮一艦、炮二艦,及雷一艇、雷二艇組成。
10時23分,台灣水師和日本聯合艦隊間的海上決鬥開始。戰場态勢對台灣水師十分有利,台灣水師不僅背對太陽而且被一層薄霧籠罩,而随風飄動的煤煙和和炮口硝煙的混合物更降低了台灣水師的能見度。
日本聯合艦隊事先未知台灣水師襲來,日本三艦隊中實力最弱的第二遊擊艦隊爲拖延時間而迎戰台灣水師第一艦隊。
10時32分,定海艦首先開炮,接着巨濤艦等開炮。
10時38分,定海艦連續命中高千穗号兩次,江清艦擊中其一次;巨濤艦也命中比睿号兩次,炮一艦命中其一次。而日本一發也未命中。
10時43分,定海艦再次擊中高千穗号,使其一座炮塔失靈,定海艦此時已經完全側射。
10時49分,定海艦又一次命中高千穗号,但也被命中一彈。
10時57分,比睿号被命中主炮塔,且主炮塔失靈。比睿号艦長櫻井規矩之左右下令向彈藥倉注水才得以避免彈藥殉爆。
11時5分,林德風下令艦隊提速。
11時9分,高千穗号右舷被江清艦用105mm主炮命中兩次,失火不得不退出戰鬥,在撤離過程中前炮塔附近又被定海艦和炮二艦各命中一次,短時間後高千穗号發生大爆炸。其上的117名官兵随之沉入海底。
爲了赢得時間,傷痕累累的比睿号進行魚雷攻擊,并且沖向巨濤艦。雷二艇立即上前,也向比睿号發射魚雷兩發,其中一發命比睿号。瞬間海水湧入比睿号,不堪重負的比睿号也緩緩的沉入海底。
日本第二遊擊艦隊高千穗号和比睿号的沉沒也爲日本聯合艦隊赢得了時間,聯合艦隊得已集結。
11時56分,台灣水師與日本聯合艦隊的第一遊擊艦隊和第三遊擊艦隊在威海衛口外開戰。
11時22分,巨濤艦與嚴島号對射,雙方互有命中,山清艦從射擊秋津洲号轉向射擊嚴島号并形成跨射。
11時31分,嚴島号連續被山清艦的主炮擊中,一發穿甲彈擊穿側舷,引發了彈藥倉,發生一場可怕的爆炸。嚴島号落水官兵在水中奮力的掙紮,但是很快他們就被漩渦吸入水下。在它後面的千代田号不得不轉向躲避爆炸後形成的煙霧和碎片。
此時,從東北方向,台灣水師的第二艦隊也加入戰鬥。他直撲橋立号,狂濤艦、一清艦、年清艦猛擊橋立号。本與吉野号、秋津洲号合攻定海艦、江清艦的橋本号不得不向左轉向,迎戰狂濤艦、一清艦、年清艦······
······
當台灣水師第一艦隊與日本第二遊擊艦隊炮戰時,在威海衛裏的北洋水師即聽到了炮聲。北洋水師即判斷是台灣水師來了,丁汝昌馬上讓北洋水師各艦升火起錨。
11時14分,北洋水師見威海出海口隻有一艘日本浪速号還堵着。丁汝昌下令北洋水師由定遠艦率領沖出威海港。
北洋水師魚貫而出,隻以一艘浪速号是擋不住的,浪速号奮力的射擊了十來分鍾,見北洋水師已沖出威海向它逼來,不得已隻是轉向後退。
11時46分,北洋水師也趕到台灣水師和日本聯合艦隊交戰的海域。
此時,日本聯合艦隊在與台灣水師的交戰中雖然沒有戰艦再沉沒,但各艦都傷痕累累。而台灣水師的各艦也都有被命中,甚至炮一艦被吉野号主炮擊中兩次,船艙起火,炮一艦被迫棄船,不久炮一艦沉沒。
當北洋水師加入戰鬥時,日本聯合艦隊司令伊東佑享見形勢危急,隻得下令各艦撤退。
但台灣水師和北洋水師緊追日艦,吉野号被北洋水師的緻遠艦和靖遠緻艦追上。兩艦以主炮對吉野号的尾炮,在追擊中,吉野号被命中輪機,吉野号失去動力。但吉野号并沒升挂白旗投降而是繼續開炮。緻遠艦發射魚雷,擊中吉野号,吉野号不久就沉沒。
其它日艦在撤退時,亦受到攻擊,秋津洲号被定海艦擊中側舷。船艙進水,航速下降,秋津洲号艦長上村彥之丞隻能下令棄船,自沉了秋津洲号。
台灣水師追擊了近一個小時,日本聯合艦隊隻有橋立号、浪速号千代田号逃離了交戰海域,退回日本。
此役,日本的嚴島号、吉野号、高千穗号、秋津洲号、比睿号沉沒,損失了三分之二戰艦和噸位,日本聯合艦隊大敗。