东乡除了派出驱逐舰进行袭击外,还先后于2月24日,3月27日和5月3日三次进行沉船堵塞港口,企图把俄国舰队禁锢在港内。第一次,日本海军省花费20余万,购买商船五艘,共约一万余吨,“尽撤船中之物,仅留锅炉机器等件,满载土石,以备堵塞之用。部署既定、堵塞令下,舰队中敢死士兵愿应募者,二千人。至有以血书请者。其后海军中佐有马良橘等76人当选,意气飞扬,不可一世,不得与者,咸以为憾”。敢死队在密集炮火下驾船逼近旅顺,沉船堵口。先后三次,共沉船21只。但这种战术并未产生多大效果。与此同时,日本舰队还采取了间接炮轰法,即隔着中间的矮山向港内俄国军舰开炮。但这种战术同样属于徒劳。
正当东乡所采用的办法屡屡无效之际,俄国方面出现了一线希望和转机,2月17日俄国太平洋舰队司令施达克被免职,由杰出的海军将领斯杰潘·O·马卡洛夫(1848~1904)接替,这位农民出身的海军将领不仅是海军哲学家,而且获得了名符其实的海洋学家、科学家、发明家和著作家的称号。曾屡次创造众所瞩目的奇迹。他治军有方,深得众望。他虽然直到3月8日才到任,但“亡羊补牢”。“用多才多艺的马卡洛夫替换无能的施达克是沙皇在整个战争期间采取的少数几个真正建设性步骤之一。”他到任后立即采取一系列紧急补救措施,而且短短几周便产生了奇效,完全恢复了俄军士气,提高了各方面的效率和舰队的攻、防能力。从3月22日起,俄国舰队几次打退日军进攻,从4月11日起一反过去消极防御战略,马卡洛夫亲自率领舰队主动出击。但在,13日作战中,马卡洛夫所乘“彼得罗巴甫洛夫斯克号”无意触发水雷,马卡洛夫及600余名官兵随舰沉没。马卡洛夫之死使俄军土气大受打击。
日俄双方从三月份开始加紧布雷活动,展开水雷攻势,并都取得了可观战果。4月13日马卡洛夫旗舰触雷那天,俄舰“胜利号”也撞上一枚水雷,右舷吃水线以上被炸开一个洞,船身严重倾侧,勉强驶回港内。第二天,日本巡洋舰“春日号”被水雷炸毁,小巡洋舰“妙高号”被炸沉。
在整个五月份,进攻的日舰不断触雷,特别是5月15日,日本遭受了重大损失,战列舰“初濑号”被两枚水雷炸沉,损失490人,另一艘战列舰“存日号”也触了雷,但在其下沉之前总算勉强摇摇晃晃地开走了,该舰死伤情况一直隐瞒到战争结束。交战期间,以旅顺口为中心半径30海里以内,双方所布小水雷区可能多达400多处。俄国水雷在旅顺港被围攻的最后阶段仍不断取得成果,12月日本的巡洋舰“高砂号”和“济远号”被炸沉,“朝日号”被炸伤。总共约四万吨的十艘日舰毁于水雷,其中包括两艘战列舰,四艘巡洋舰,一艘鱼雷快艇和一艘布雷舰。俄方毁于水雷的舰艇共六艘,其中包括一艘战列舰,一艘巡洋舰,两艘驱逐舰,一艘鱼雷快艇和一艘炮艇,约22000吨。
马卡洛夫死后,接替他的维特甫特毫无异议地接受上级为他规定的消极政策,采取舰队不活动方针,无所作为地深藏不出。但在此期间,俄国的海参崴分舰队却发动了几次成功的突然袭击。这支分舰队拥有大型装甲巡洋舰“留里克号”,“俄罗斯号”和“格罗莫鲍伊号”,防护巡洋舰“勇士号”和少数鱼雷快艇。开战以来,日本先后派第三和第二舰队来对付俄国分舰队,但并没有取得多大战果。俄国舰队却神出鬼没地对日本商船和交通进行破坏。4月25日,俄国人突然袭击朝鲜元山,击沉日本运兵船“金州丸”,日本百余名陆军官兵丧生,6月12日和20门,俄国巡洋舰击沉日本三艘运兵船“常陆丸”,“佐渡丸”与“和泉丸”,日军官兵死亡甚众。7月19日,俄国舰队离开海参崴,穿过津轻海峡进入太平洋,沿日本东岸巡航一直到江户湾以南海面,击沉和俘获了八艘日本商船,8月1日返回港口。俄国鱼雷快艇有时伴随舰队出航,有时单独行动。上村彦之丞海军中将所率第二舰队曾多次企图截击俄国舰队,但俄国人都成功地逃脱了。俄国人的袭击活动是以舰队为单位进行的。如果采取单个舰只独立作战形式,可能会取得更大战果。
4月30日,俄国决定派出波罗的海舰队来远东增援。日军须赶在波罗的海舰队到来之前消灭俄国太平洋舰队。旅顺已成为日本的首要战略目标。从五月底开始,日本开始加紧进攻旅顺。日军大本营决定起用悍将乃木希典为司令,编成第三军,专门攻打旅顺。同时东乡对旅顺实行全面封锁,宣布整个辽东半岛水域为战区,拦截中立国船只。从此,日俄双方展开了激烈争夺旅顺的战斗。日军包围攻打旅顺的兵力达六万人,火炮400门,机枪72挺,海军以52艘舰艇封锁港口,俄国守军也从两万增至四万,火炮646门。机枪62挺,海军有38艘舰艇。乃木希典采用“肉弹”战术,不惜任何伤亡,拼命向前推进。东乡在港外严密监视俄舰队突围。1904年6月23日,俄国舰队企图突围,设法逃往海参崴。由于要进行扫雷,被日本察知,使东乡有充分的作战准备。
当天下午六时半,俄国舰队与日本舰队相遇,俄国舰队掉头驶回港口,东乡命令鱼雷艇进行夜袭。在短暂夜战中,双方均未击中目标,但俄国战列舰“塞瓦斯托波尔号”撞上一颗水雷,炸成重伤。
俄国舰队司令维特甫特在沙皇和远东总督严令催逼下,决定于8月10日离开旅顺,撤向海参崴,从而发生了8月10日之战。8月10日上午8时30分,俄国舰队由扫雷舰开路驶出港口,由六艘战列舰、巡洋舰和十艘驱逐舰组成。由于俄国舰只出港需要五个小时,所以东乡有充裕时间把自己舰队集中起来。日本舰队由八艘主力舰——四艘战列舰,四艘装甲巡洋舰组成。在小型舰只方面日本占有压倒优势,仅鱼雷艇就有60到90艘。
俄国舰队离港后驶向东南,想绕过朝鲜,然后驶往海参崴。在下午一时左右,在距旅顺口约30海里处,遭日舰拦击。开战后,俄国舰队被迫转小圈子绕行,于是便偏离了逃往海参崴的航线。交战的最初几个小时内,俄国舰队还略占上风。日本的大口径火炮有16门被击毁,俄国只损失四门大口径炮。但下午6时37分时,一颗炮弹打中了俄国旗舰“太子号”的司令塔,舰队司令维特甫特阵亡。“太子号”被迫调转方向返回旅顺,整个舰队陷于混乱,到晚上7点30分时,俄国舰队实际已被包围。但在混战中,只一艘战列舰受伤。俄国所有舰只先后都逃出包围圈,战列舰“太子号”以四节的航速摇摇晃晃地驶入德国人占据的胶州,在那里被扣留。防护巡洋舰“女神号”冲出包围,逃到西贡,被法国人扣留。另一艘防护巡洋舰逃到上海避难。小巡洋舰“诺维克号”自沉在浅水滩。其他所有舰艇都重新逃回了旅顺港。现在留在旅顺港的五艘战列舰,两艘巡洋舰和12艘驱逐舰重新被封锁在港内,几乎没有再参与后来的战争。这场战斗,标志俄国人进一步丧失了制海权。
8月10日和14日之后,日本人加紧进攻旅顺。日本人在海上继续封锁,布雷和进行间接轰击,而俄国舰只(除布雷舰和鱼雷快艇外)很少冒险出港:同时,俄国人把越来越多的炮手和火炮调到岸上,以支援陆上的防御。从此,双方争夺旅顺的斗争主要变成了陆战。
8月19日开始,日军向旅顺发起总攻,其时波罗的海舰队即将起程(10月16日),日军大本营严令不惜任何代价攻下旅顺。经过多次血战,付出巨大的伤亡之后,日军于12月5日攻占“203”高地,开始以重炮俯射港内俄国军舰。1905年1月1日,旅顺俄军投降。仅六艘俄国驱逐舰和一些小型舰艇闯过了日本人的封锁,逃到中立国港口后被扣留。战列舰“塞瓦斯托波尔号”受到一群鱼雷快艇的攻击,一名俄国能干的舰长埃森上校把它沉入深水。其余舰艇多数被打沉在港内。日军占领旅顺后把这些军舰大多捞起来加以修复,把战列舰“波尔塔瓦号”改为“丹后号”,“列特维赞号”改为“肥前号”,“胜利号”改为“周防号”,“佩列斯维特号”改为“相模号”,把装甲巡洋舰“巴扬号”改为“阿苏号”,防护巡洋舰“帕拉达号”改为“津轻号”。
旅顺港的陷落,俄国太平洋舰队被消灭,无论对陆战和海战都产生了重大影响,成了整个战争的转折点,此后俄国已丧失了取得胜利的可能。