北洋舰队丰岛海战只是稍有损失,对整个舰队的战斗力并无多大影响。战后第二天,李鸿章电令海军提督丁汝昌“即带九船开往汉江洋面游巡迎剿”。但同时又说:“唯须相机进退,能保全坚船为妥,仍盼速回。”丁汝昌于7月27日率队由威海卫出发,由于受李鸿章“保全坚船”指示的束缚,不敢前往汉江口,仅至大同江口外即返回威海卫基地,以“未遇倭兵”敷衍了事。中日宣战的当天(8月1日),李鸿章又电告丁汝昌:“总署催汝统铁、快各船往仁川附近……相机截击。”但又继续强调:“速去速回,保全坚船为要。”于是,丁汝昌于出发前复电李鸿章,以无侦探快船又少快炮等为由,言明不能去汉江口,只宜“远巡大同江口,遇敌痛剿;近顾北洋门户,往来梭查”。李鸿章当即转告总理衙门,称丁所言“似系老成之见”。8月5日,清廷得知叶志超军已经溃败,预料日军必将北攻平壤,于是令北洋舰队专顾大同江口一带海面的安全,以便由海路增援平壤。8月9日,丁汝昌第三次率队出巡。第二天黎明,日舰20余艘突然出现于威海卫港外,遭到海岸各炮台的猛烈炮击。当晚,日舰又窜至旅顺口外,与城头山炮台交相炮战。清廷闻知威海、旅顺一带洋面有日舰活动,甚为惊骇,急令丁汝昌率北洋舰队“速回北洋海面,跟踪击剿”。8月23日,清廷进一步指示:“威海、大连湾、烟台、旅顺等处,为北洋要隘,大沽门户,海军各舰应在此数处来往梭巡,严行扼守,不得远离,勿令一船阑入。”此后,北洋舰队不出北洋一步,再未远巡。这样,日本海军便完全控制了朝鲜仁川、大同江口等重要港口,占领了从海路进攻中国的有利前进基地。
由于丁汝昌多次率队出巡无功,受到朝野不少人的攻击。8月26日,光绪帝下令将丁汝昌革职,但仍“戴罪自效”。李鸿章不得不上奏为丁汝昌辩护,同时乘机正式提出“保船制敌”的方针,进一步强调“海上交锋,恐非胜算”,建议清廷放弃争夺制海权。从此,北洋舰队更加陷入了消极自保的被动局面。
9月上旬,清廷鉴于平壤战事紧急,拟派兵增援。为了及时到达前方,决定将驻防大连一带的总兵刘盛休所部铭军八营4000人由海道运至大东沟,然后转由陆路赴朝。这样,海军掩护,责无旁贷。李鸿章乃令丁汝昌率舰队护航。9月15日上午,丁汝昌率领北洋舰队主力抵达大连湾。
9月16日2时左右,铭军搭乘招商局“新裕”号、“图南”号等5艘轮船,在北洋舰队的护卫下安全到达目的地。此时平壤已失,铭军无法起到支援的作用。
日本联合舰队早想与北洋舰队决一雌雄,当得知中国海军护送陆军赴朝的消息后,便于9月14日午后由仁川港出发,15日到达大同江口。因不见有中国舰船,伊东命部分舰只溯大同江支援第5师团进攻平壤,其余舰暂泊待命。伊东判断,北洋舰队有可能护送陆军往鸭绿江口一带,于是不待全舰队集中,便率军舰12艘于16日下午出发,向黄海北部的海洋岛方向航进,17日晨抵达该岛附近。
9月17日上午10时30分左右,北洋舰队正准备起锚回航旅顺时,发现日本舰队自西南驶来,丁汝昌随即命令舰队起锚迎战。从双方的实力来看,日本联合舰队吨位总数大,航速快,机动性好,火炮多,攻击力较强;北洋舰队拥有两艘巨型装甲战列舰,重炮多,防护性能较好,双方可以说是旗鼓相当。战斗之前,丁汝昌下达了三条训令,一、须协同动作,互相援助;二、始终以舰首向敌,偕保持其位置,而为基本战术;三、诸舰务于可能范围之内,随同旗舰运动之。
北洋舰队开始成“并列纵阵”(“定远”“镇远”两舰居前),以每小时5海里的速度向西南方向航进。日舰则以第一游击队“吉野”“高千穗”“秋津洲”“浪速”号4艘速率最高的巡洋舰为先锋,伊东自乘旗舰“松岛”号,率领本队“千代田”“严岛”“桥立”“比睿”“扶桑”号跟进。12时许,又将武装商船“西京丸”号及小炮舰“赤城”号移至本队的左侧(非战斗一面)。丁汝昌在“定远”舰前方的飞桥上,见日舰成“单行鱼贯阵”(单纵队)扑来,决定采取以主舰居中的“夹缝雁行阵”(交错配置的双横队)应战。由于阵形尚未完全组成,旗舰即以每小时8海里的速度前进,“济远”“广甲”“超勇”“扬威”号等后续舰斜行追赶不及,以致形成半月形而类似“后翼梯阵”(又叫“燕剪阵”)。因此,日方认为,北洋舰队当时所列队形“似为不规则之单横阵,又似后翼梯阵,而‘定远’‘镇远’居中……”
日舰第一游击队开始指向北洋舰队的中央,约距离12000米时,稍向左变换航向,然后又按原方向前进,准备首先进攻北洋舰队的右翼。17日12时50分,双方舰队相距约5700米,北洋水师“定远”号首先发主炮攻击,其余各舰亦相继开炮。弹丸落于日舰第一游击队近旁,但均未命中目标。当时正值微弱东风,硝烟弥漫于北洋舰队之前,日舰趁机以每小时14海里的速度向前急驶。
当前进到离北洋舰队右翼约3000米时,日第一游击队4舰陆续以其右舷速射炮猛轰“扬威”“超勇”号。13时5分,彼此仅距1600米,日舰以低弹道向“超勇”“扬威”号实施抵近射击,二舰相继起火,退出战斗。日舰“吉野”号也中弹起火,但很快被扑灭。约13时30分,“超勇”号沉没。这时,“平远”“广丙”号和两艘鱼雷艇已赶到,但因火力均不强,未能改善右翼态势。
当第一游击队绕攻北洋舰队右翼时,本队也与北洋舰队主力交相炮击。北洋舰队虽然阵形已被打乱,但各舰随时变换方向,力求使舰首对敌,以充分发挥主炮威力。“定远”号猛发右炮攻倭大队各船,又发左炮攻倭尾队三船。日舰“比睿”“赤城”号因速度迟缓掉队,正好被北洋舰队所截击。13时10分,“比睿”号突然改变航向,向右急转舵,冒死从“定远”“来远”号之间窜逃(距“定远”约1000米,距“来远”约400米)。“定远”“来远”及“经远”号等舰乘机予以夹击,重创“比睿”号,迫使其向左转舵,逃出包围圈,追赶本队。
“赤城”号企图营救“比睿”号,受到“来远”号等舰的猛烈炮击,其舰长坂元八太郎等多人当场毙命。“西京丸”号也受重伤,“舵已轰断,舟中观战之大吏(按:即海军军令部长桦山资纪)几被华军连船擒去”。
日舰第一游击队掠过北洋舰队右翼以后,又向左作180度回航,企图利用其速度快、机动的优点,配合本队作战。但本队旗舰“松岛”号发信号令其归队,便又向左作180度回航。于是,北洋舰队主力舰只对准第一游击队右侧后方,猛烈炮击。14时15分,第一游击队刚刚追上本队最后一舰“扶桑”号,又见“西京丸”号发出“‘比睿’‘赤城’号危险”的信号,只得再次向左作180度回航。与此同时,本队已绕至北洋舰队的背后,与第一游击队形成夹击之势。这样,北洋舰队陷入了腹背受敌的不利境地,队形更加混乱。
双方继续鏖战。战斗过程中,丁汝昌身负中弹,仍然坚持在“定远”号甲板上鼓励士兵作战。右翼总兵“定远”舰管带刘步蟾代替丁汝昌督战,沉着指挥。北洋舰队大部分官兵士气高昂,英勇战斗,奋不顾身。“致远”号管带邓世昌是他们中的杰出代表。当时,“致远”舰多处受创,船身倾斜,弹药将尽。邓世昌见日舰“吉野”号十分猖狂,毅然下令开足马力,用冲角撞击“吉野”舰,准备与敌同归于尽。“吉野”舰慌忙规避,并发射鱼雷。“致远”舰不幸重伤,锅炉爆炸。约15时30分,“致远”舰沉没,邓世昌等250名官兵壮烈牺牲。
与此同时,“经远”号也中弹起火,管带林永升浴血抗战,不幸中弹阵亡。而“济远”号管带方伯谦和“广甲”号管带吴敬荣,贪生怕死,临阵脱逃。日第一游击队尾追不及,又折回猛攻已受重伤的“经远”号。约17时左右,“经远”号沉没,全舰270名官兵除16人获救外,余皆殉难。“广甲”号仓皇逃跑时,“避大洋,傍岸行”,以致在大连湾的三山岛外搁浅。23日,遇日舰“秋津洲”“浪速”号巡航,便自行炸沉。
“靖远”“来远”号因中弹过多,力不能支,退出战斗,避至大鹿岛附近紧急修补损坏的机器。“平远”“广丙”号及“福龙”雷艇也因尾追单独逃跑的日舰“西京丸”号,而为敌第一游击队所断,未及归队。
在“致远”“经远”号等舰同第一游击队激战的同时,“定远”“镇远”号两舰正同联合舰队本队进行艰苦的鏖战。一小时后,“定远”号只有3门炮、“镇远”号只有两门炮尚能发射。两舰以寡敌众,始终保持相互依靠的距离。虽中弹甚多,几次起火,全体官兵仍然坚持奋战,一面救火,一面拼死抵抗,并重创敌旗舰“松岛”号,所发的炮弹命中“松岛”号下甲板炮台的第4号炮,导致放在近旁的炮弹爆炸,火光大作,白烟升天,炮台指挥官海军大尉志摩清直以下死伤100余人,死尸山积,血流满舰。
不久,北洋水师的“靖远”“来远”舰抢修完毕,重新投入战斗。“靖远”号帮带大副刘冠雄知“定远”号旗舰桅杆断裂,不能升旗指挥,建议管带叶礼珪代悬信旗集队,指挥各舰绕击日舰,并调出泊于港内的“镇南”“镇中”号等前来助战。于是,“平远”“广丙”号及各鱼雷艇也都折回。这时,日旗舰“松岛”号已经瘫痪,“吉野”号只剩下一具躯壳,失去战斗力,其余日舰也伤亡惨重,不能再战。又见北洋舰队重新集队,伊东便于17时40分左右下令各舰向东南方向遁逃。北洋舰队稍事追击,由于时已日暮,加之炮弹告罄,于是收队返回旅顺。
黄海海战,历时五个多小时,其规模之大,时间之长,为近代世界海战史上所罕见。战斗中,日海军“松岛”“吉野”“比睿”“赤城”“西京丸”号五舰受重伤,共死伤约600人;北洋舰队“致远”“经远”“杨威”“超勇”号被击沉,“广甲”号自毁,“来远”号等舰遭重创,共伤亡近千人。
黄海海战北洋舰队的损失虽然大于日方,但亦给日舰以重创,并迫使其率先逃跑。因此,当时中外舆论对于谁是这次海战的胜利者,众说纷纭。从客观效果看,日本联合舰队虽未能达成“聚歼”北洋海军的目的,但由于北洋舰队嗣后不敢再战,日军基本上掌握了黄海制海权,为下一步实施花园口(今旅大市庄河西南90里)登陆、进攻辽东半岛创造了条件。