조선에서 동학의 투쟁이 핏물 속에서 녹아내리고 있던 때, 청과 일본의 전쟁 무대는 중국으로 옮겨가 있었다. 그것은 육지에서 평양 전투가 일본의 압승으로 끝났기 때문이기도 했지만, 그 며칠 뒤(9월 17일) 바다에서 벌어진 전투, 황해 해전(또는 해양도 해전이나 압록강 해전)으로 일본이 제해권을 차지했기 때문이기도 했다.
풍도 해전처럼, 황해 해전도 치밀한 계획에 따라 벌어진 전투는 아니었다. 순양함 1척과 어뢰정 10척의 보호 아래 청나라의 수송선단이 4천의 병력을 싣고 압록강 어귀로 향했는데, 도중에 정원, 진원 등 주력함이 고스란히 포함되어 있던 북양함대와 합류했다.
이들은 수송 임무를 무사히 마치고 귀환하려는데, 일본 연합함대와 마주치고 말았다. 일본군으로서도 뜻밖의 상황이었으므로, 전투 준비가 충분치 못한 상황에서 임기응변으로 작전을 짜내 대응해야 했다.
북양함대는 겨우 한 달 만에 가벼운 희생만으로 청군을 한반도에서 몰아낸 지금까지도 일본이 가볍게 보지 못하는 상대였다.
그만큼 규모가 컸고, 일본이 보신전쟁을 치르고 메이지유신을 마치느라 바쁜 동안 청나라가 구축해온 전력의 결정판이라 할 수 있었다.
그래서 지난 십여년 동안 사력을 다해 해군력을 증강해왔고, 강도 높은 훈련으로 이날의 대회전을 준비해온 것이었다.
일본 함대에 동승했던 서구인들의 증언으로는 일본 해군은 매일 거르지 않고 사격 연습을 했다고 한다.
그 사실은 세 가지를 시사한다. 첫째, 그만큼 실전에 임해 침착하고 기민하게 행동할 수 있었다.
둘째, 그만큼 탄약 보급에 여유가 있었다(한때 군함마다 겨우 세 발의 포탄밖에 없었던 북양함대는 이후 급히 보강하긴 했으나, 아직도 충분하다고는 하기 어려웠다).
셋째, 연습만 내내 하다 보면 실전을 해보고 싶어 좀이 쑤시는 법이다. 그만큼 압록강 어귀에서 청 해군과 우연히 마주쳤을 때, 일본 해군은 두 번 생각할 것도 없이 싸우는 쪽을 택했다.
북양함대는 전투함 12척에 철갑함은 전함 2척(정원, 진원)을 비롯한 5척이었고, 연합함대는 전투함 수는 12척으로 같았지만 철갑함은 전함 후소 1척뿐이었다.