然而,由於時間緊迫,北洋艦隊未能完全形成理想的犄角雁行陣型,實際接戰時的隊形更像是“燕翦陣”。日本聯合艦隊則分為兩個戰術分隊,以高速的吉野號為首的第一遊擊隊作為尖刀,其餘八艦作為本隊跟進。
戰鬥開始時,雙方距離約12公里,當距離縮短至5330米時,北洋艦隊旗艦定遠號率先開炮,隨即展開激烈的炮戰。不幸的是,定遠號上的訊號裝置很快被日艦炮火摧毀,導致北洋艦隊失去了統一指揮。日本第一遊擊隊則迅速向北洋艦隊右翼薄弱的超勇號和揚威號發動攻擊,並將其擊沉。
隨著戰鬥的持續,日本聯合艦隊透過靈活機動,對北洋艦隊實施了包抄,使其陷入腹背受敵的困境。17時40分,日本聯合艦隊主動撤離戰場,這場持續了五個小時的激烈海戰告一段落。
黃海海戰中,中日雙方各有12艘軍艦參戰,但中方軍艦整體較為老舊,噸位和火炮數量均不及日方,尤其是缺乏速射炮。作為北洋艦隊的指揮官,丁汝昌在戰前沒有明確指定代理人和代理旗艦,在戰鬥中失去了指揮能力,導致北洋艦隊未能有效應對敵軍的戰術。
儘管如此,日本聯合艦隊在指揮上也存在諸多問題,但最終的結果是,日本聯合艦隊雖受到一定程度的打擊,卻沒有失去一艘軍艦;而北洋艦隊則損失了五艘軍艦。這場海戰的失敗,對北洋艦隊造成了沉重打擊,丁汝昌也因此受到了責難。
七、兵敗殉國
光緒二十年(1894年)九月二十日,北洋艦隊在旅順完成修理後返回威海,但不幸的是,“鎮遠”艦在入港時觸礁受損,這對已經受損的北洋艦隊來說無疑是雪上加霜。隨著日軍進攻旅順,丁汝昌的處境愈發艱難,先是被革去了尚書銜,摘掉了頂戴,接著在旅順失陷後,又被革職,但仍暫時留任。
在威海的防禦佈置中,丁汝昌對陸軍的戰鬥力表示擔憂,並建議做好炸燬陸路海岸炮臺的準備,以免落入敵手。然而,這一建議卻被誤解為“通敵誤國”,並被戴宗騫舉報。清廷隨即下令將丁汝昌送交刑部治罪。幸得劉步蟾等將領聯名上書請願,加上李鴻章的極力辯護,清廷最終決定待丁汝昌處理完手頭事務後再將其送交刑部。
儘管身處逆境,丁汝昌仍舊力圖振作,召集諸將討論如何防守威海。十二月二十五日,日軍在山東榮成登陸,並於三十日即除夕夜,由日本聯合艦隊司令長官伊東佑亨遞送勸降書。丁汝昌堅決拒絕投降,並將勸降書上交李鴻章,以示忠誠。
光緒二十一年(1895年)正月三十日,日軍進攻威海南幫炮臺的制高點摩天嶺,丁汝昌指揮艦隊從海上支援炮臺守軍,成功擊斃了日軍旅團長大寺安純。然而,由於力量懸殊,威海陸路南北炮臺相繼失守,劉公島成為了被海陸合圍的孤島。
丁汝昌組織敢死隊執行破壞任務,但最終敢死隊成員全部犧牲。日本海陸兩軍繼續進攻北洋艦隊,但都被擊退。直到二月五日夜,日本魚雷艇偷襲,導致“定遠”艦受損嚴重,丁汝昌不得不將督旗移至“鎮遠”艦。二月七日,日軍艦艇集結,準備強行突破,同時陸上炮臺向港內猛轟。
二月九日,丁汝昌登上“靖遠”艦迎戰,擊傷了兩艘日軍艦艇,但“靖遠”艦也被陸上炮臺擊傷。丁汝昌欲與艦同沉,被部下強行救起。到了二月十二日,面對日軍的勸降,丁汝昌決心以身殉國,飲鴆自盡,以表忠心。臨終前,他親手破壞了北洋海軍提督印,時年僅59歲。
丁汝昌去世後,其下屬牛昶昞盜用他的名義,與日方簽訂了《威海降約》。北洋海軍最終全軍覆沒。清廷內的保守派和激進派相互攻擊,光緒帝下令籍沒丁汝昌家產,並禁止其下葬。丁汝昌的子孫被迫流落異鄉。
直到宣統二年(1910年),經過載洵及薩鎮冰等人的爭取,