1894年(光緒二十年),這一年是舊曆甲午年,朝鮮爆發了東學黨起義,於是朝鮮政府請求清廷協助鎮壓,日本便乘機出兵侵占朝鮮。7月下旬,日本軍艦公然擊沉了中國駛往朝鮮的運兵船“高升”號,清政府被迫在8月1日向日本宣戰,日本也在同一天向中國宣戰,中日甲午戰爭爆發了。
9月17日,北洋艦隊在黃海海麵遭遇日本聯合艦隊,雙方展開了一場激戰。為了保護旗艦“定遠”號,“致遠”號管帶(艦長)鄧世昌下令開足馬力,向日艦猛衝,以求同歸於盡。不幸的是,“致遠”號身中魚雷,鄧世昌與二百餘名戰士壯烈犧牲。這一戰,可真的使李鴻章嚇破了膽。
1894年9月,北洋艦隊退回旅順港修理。一個月以後,李鴻章等艦隊修理完畢,就命令其開到威海衛躲起來,不許出海。旅順遭日本軍隊進攻時,丁汝昌曾經請求李鴻章,讓他帶領艦隊去援助,不料被李鴻章大罵一頓。李鴻章說:“你隻要在威海衛好好地守住你的幾條船,別的事不用你管!”就這樣,北洋艦隊隻好躲進威海衛軍港內,輕易地丟了製海權。
第二年1月下旬,當日本人探知北洋海軍的動向後,就出動艦艇二十餘艘,軍隊二萬多人,從成山頭登陸,然後兵分兩路,向威海衛大舉進犯。麵對日軍的攻勢,負責山東防務的巡撫李秉衡因防備不足,使得威海衛南北兩岸的炮台相繼失守。
與此同時,日本艦隊也從海上對威海衛軍港實施圍攻。停泊在港內的北洋艦隊完全處於日軍南北夾擊的劣勢,幾乎成了甕中之鱉。麵對危急的形勢,北洋艦隊的愛國官兵在丁汝昌、劉步蟾等的指揮下,奮起抵抗,開始了艱苦的劉公島防禦戰。
日本艦隊司令伊東佑亨見正麵強攻沒有效果,就冒險利用魚雷夜襲。2月4日晚,一艘日軍魚雷艇以夜色作掩護進港偷襲,搶在“定遠”艦發現前施放了一枚魚雷,把這艘旗艦炸成重傷。第二天晚上,日軍如法炮製,“來遠”“威遠”艦中彈沉沒。
北洋艦隊接連失去了幾艘艦艇,實力大大削弱。伊東佑亨見圍殲北洋艦隊的時機已經成熟,便在7日向威海衛守軍和北洋艦隊發起總攻。這一天,雙方的激戰驚心動魄。北洋艦隊和炮台守軍苦戰一整天,終於打退了日軍的進攻。然而,就在這一天,北洋艦隊的十艘魚雷艇和兩艘汽艇衝出西口,自顧自逃命,結果有的觸礁沉沒,有的中彈被炸毀,有的被日艦俘獲,嚴重地動搖了守軍的士氣。
在被日軍圍攻的日子裏,丁汝昌沒有喪失抵抗的決心。他相信,隻要陸上援軍趕到,還是可以轉危為安的。為此,他還派了一名水性好的水手拿了封密信潛水去煙台求援。
11日是戰鬥最為艱苦的一天。丁汝昌接到水手的報告,說李秉衡由煙台撤往萊州,陸路援兵已無指望,丁汝昌固守待援的希望破滅了。這時,日軍水陸兩路的進攻更加猖狂,炮火非常猛烈,劉公島簡直成了一團火球,威海衛軍港也成了一片火海。北洋海軍苦撐幾天,傷亡日益增加,彈藥也已供應不上,實在難以支撐下去。
事已至此,與其坐以待斃,倒不如來個魚死網破。當夜,丁汝昌召集各艦管帶和外國顧問開會,命令殘餘艦艇全力突圍,但遭到外國顧問和威海營務處提調牛昶(chǎng)昞等人的抵製。他又下令用水雷將“鎮遠”等艦炸沉,以免落入敵手,還是沒人響應。
會後,牛昶昞勾結外國顧問指使一些兵痞,拔刀逼迫丁汝昌同意向日軍投降。牛昶昞甚至衝了上去,持槍對著丁汝昌,狂叫道:“你身為提督,竟置北洋艦隊萬人生命於不顧,你想死,我們還想活哩!你再不下命令,我牛某人就不客氣了!”
局麵壞到這種地步,丁汝昌悲憤萬分,但又無可奈何。他不願意活著落入敵手而玷汙了自己的名聲,更不願意向日軍舉手投降,在遙向京城跪拜之後,他便服毒自盡。
第二天,美國顧問浩威和民族敗類牛昶昞盜用丁汝昌的名義向伊東佑亨投降。
17日,日本艦隊由威海衛西口耀武揚威地進港,太陽旗隨之飄揚在劉公島上。牛昶昞像條哈巴狗,在伊東佑亨麵前乞憐搖尾,率殘存的十艘北洋海軍艦艇和五千多名中國陸海軍官兵投降。至此,李鴻章耗費巨資、慘淡經營的威海衛基地陷落,北洋水師全軍覆沒。