第二年1月下旬,当日本人探知北洋海军的动向后,就出动舰艇二十余艘,军队两万多人,从成山头登陆,然后兵分两路,向威海卫大举进犯。面对日军的攻势,负责山东防务的巡抚李秉衡因防备不足,使得威海卫南北两岸的炮台相继失守。
与此同时,日本舰队也从海上对威海卫军港实施围攻。停泊在港内的北洋舰队完全处于日军南北夹击的劣势,几乎成了瓮中之鳖。面对危急的形势,北洋舰队的爱国官兵在丁汝昌、刘步蟾等的指挥下,奋起抵抗,开始了艰苦的刘公岛防御战。
日本舰队司令伊东佑亨见正面强攻没有效果,就冒险利用鱼雷夜袭。2月4日晚,一艘日军鱼雷艇以夜色作掩护进港偷袭,抢在“定远”舰发现前施放了一枚鱼雷,把这艘旗舰炸成重伤。第二天晚上,日军如法炮制,“来远”“威远”舰中弹沉没。
北洋舰队接连失去了几艘舰艇,实力大大削弱。伊东佑亨见围歼北洋舰队的时机已经成熟,便在7日向威海卫守军和北洋舰队发起总攻。这一天,双方的激战惊心动魄。北洋舰队和炮台守军苦战一整天,终于打退了日军的进攻。然而,就在这一天,北洋舰队的十艘鱼雷艇和两艘汽艇冲出西口,自顾自逃命,结果有的触礁沉没,有的中弹被炸毁,有的被日舰俘获,严重地动摇了守军的士气。