1900年6月4日在法国公使的抗议下,各国公使共同议定:各国公使立即通电本国,要求下令给各国海军统帅,立刻采取应急军事措施。尔后几日内,大沽口各国军队又陆续登陆。6月9日英国驻京公使窦纳乐给驻大沽口的海军司令西摩尔发电,让他立即派遣军队增援先期到达北京的先头部队。西摩尔当天由大沽口乘船沿海河抵达天津,并立即召集各国驻津领事和海军司令策划入侵北京。此时在天津租界地的各国军队,计英兵915人,德兵415人,俄兵315人,法兵158人,美兵112人,日兵52人,意兵49人,奥兵29人,共计2064人。共推英海军司令西摩尔为统帅,美国麦卡加拉上校为副统帅,这便是八国联军的最初组成。尔后,联军各国统领曾多次召集会议和组织联合行动,但此时的联军尚不是由各国政府建立起来的统一指挥的联合部队。直到9月27日,德国陆军统帅瓦德西被任命为联军司令时,八国联军才算正式组成。
6月10日清晨,八国联军2300多人在西摩尔的率领下,乘火车由天津向北京进发。这一行动激起了津、京义和团乃至部分驻守清军的怒火,他们在京津铁路沿途扒铁轨,搬枕木,奋力阻止联军北上,在北京的清军董福祥的甘军也控制了北京火车站,准备阻击联军。由于京津铁路部分被毁,西摩尔乘坐的第一列火车只得边修路边前进,至6月12日才抵达廊坊,到廊坊后立即遭到义和团的攻击。义和团战士头扎红巾,手持大刀、长矛,奋不顾身地向用洋枪洋炮武装起来的联军杀去,联军只得龟缩在火车站内。这时联军的后续部队赶到,用大炮轰击义和团,无所畏惧的义和团战士有80多人倒在血泊中,但他们前仆后继,越战越勇,周围的村民也赶来支援,把联军死死围在火车站内。
6月16日西摩尔率部分联军,在炮火的掩护下修复铁路,乘火车逃出廊坊,退至杨村。6月18日董福样率甘军从北京来援,义和团和甘军共5000余人与困守廊坊的联军展开激战。联军虽然只有1000余人,但所用是杀伤力极强的洋枪洋炮,而义和团战士手中的不过是大刀、长矛。义和团和甘军几乎是用血肉之躯与联军拼搏,虽杀死联军6人,杀伤48人,但也有四五百战士捐躯。当晚,该部联军退至落垡,19日退至杨村与西摩尔军会合,义和团与甘军又包围了杨村。20日联军丢弃火车,突围至北运河,抢夺民船运送辎重和伤员,部队则沿北运河逃往天津。21日天津守军聂士成宰步兵、马兵沿北运河与义和团共同狙击联军,使联军受到重创,22日联军狼狈逃至北仓。
但在少数教民的指引下,联军乘虚攻下天津西沽武库。西沽武库为天津军储重地,联军占领武库使其得到军火补给得以据守,义和团与清军包围了武库,两军成僵持状态。6月25日俄国希林斯基上校率2000名俄军增援西沽武库联军,6月26日联军烧毁武库,逃回天津老龙头火车站与租界地联军会合。此次西摩尔率联军北上一战宣告失败。据《八国联军志》记载,此役联军死62人,伤312人,义和团和爱国清军则付出了更大的代价,但其意义重大,它显示了中国人民不畏强暴的反抗精神,鼓舞了中国人民的反侵略斗志。连西摩尔也不得不承认:“如果义和团所用的武器是近代枪炮的话,那么我率领的联军必定会全军覆没。”
当西摩尔率联军北上受挫时,驻守在大沽口的各国舰队感到形势不妙,于是也紧急行动起来以牵制义和团与爱国清军。大沽口是京津和直隶的门户,战略地位十分重要。此时的大沽口炮台由三座土垒构成,南岸设炮台五座,北岸设炮台两座,背后设炮台一座,共有清军步队、炮队二三千人驻守,除旧式武器而外,又增添了外国所产新式大口径火炮,大沽口海面还有新从国外购进的3000吨位的“海容”号巡洋舰和“海华”、“海龙”、“海犀”、“海青”四艘鱼雷艇。镇守炮台的清军将领是天津镇总兵罗荣光。罗荣光这时刚被提升为新疆喀什噶尔提督,未及赴任,便被派往天津守大沽口。
清廷迫于压力,6月13日令直隶总督裕禄将守护津芦铁路的聂士成军调回天津驻扎,16日在天津军粮城布置防守。此时罗荣光也在大沽口海域安置水雷,聂、罗二军都准备与敌决一死战,清廷虽然下令清军做了些军事准备,但从总体上看,并没有打一场大战的精神准备,所以往往举棋不定,行动迟缓。清军在大沽口作好陆、海军准备之时,八国联军在大沽口已集结30多艘军舰、几十只运兵船和救护艇等,船载各国侵略军数千人,两军对垒,战争一触即发。6月15日联军在俄国舰艇上召开了各国海军将领会议,密谋进攻大沽口的战略部署。会后,俄军200多人偷袭了炮台后方的重要据点军粮城,日军300多人登陆占领了临近大沽口的塘沽车站。
16日联军召集第二次会议,进一步部署进攻大沽口方案,当日又派900多名联军迂回登陆,潜伏在炮台后侧,海面上的30多艘军舰也部署完毕。一切就绪之后,当日夜里10点联军向罗荣光发出最后通牒,要求守军于6月17日凌晨交出大沽口炮台,以供联军代剿义和团之用,如届时不交出炮台,即开火轰击。最后通牒由俄国中尉巴赫麦季耶夫和英国领海员约翰森交给罗荣光,罗荣光当即严词拒绝,传令各炮台,马上做好战斗准备。显然,联军这个最后通牒不过是走走形式而已,但就连这一形式联军也没有遵守,当夜11点,各国停泊在大沽口近海的十多艘军舰一齐向炮台开炮,用电灯照射炮台瞄准轰击,迂回至炮台后侧的联军听到炮声也立即向炮台开火,于是大沽口海战爆发。
联军炮声一响,罗荣光立即命令南岸各炮台清军瞄准电灯亮处开炮还击,双方炮火如电闪雷鸣,照彻夜空。不多时守军便将一敌舰电灯击毁,敌舰体受创转轮逃避。同时,守军副将韩照琦也在另一炮台率守军猛烈还击敌舰。在此战中,英军的“亚尔舍林”号,俄军的“海龙”号、“朝鲜人”号、“基立亚克”号战舰均被击伤。罗荣光在下达还击命令的同时,派专差向北洋海军统领叶祖珪请求下令给各海军军官协同作战,以夹击来犯之敌。但叶祖珪由于未接到清廷作战命令,而未能协同作战,致使大沽口炮台罗荣光一部孤军奋战,腹背受敌。
17日清晨5时北炮台终于失守,而后联军又集中火力攻击南炮台,这时一发炮弹击中炮台后面的弹药库,刹那间火光冲天,清军牺牲众多,同时也失去了弹药补给,至6时30分南炮台失守。
在16日夜至17日晨这7个多小时的战斗中,据统计,登陆联军被打死136名,军舰上的联军被打死打伤119名,占进攻联军的近三分之一,击伤敌舰6艘,重创其中4艘。而清军损失则更为惨重,死伤官兵1000多人,正副统9巾罗荣光和韩照琦以及不少军官均不同程度负伤;不仅炮台失守,而且“海容”号巡洋舰和四艘鱼雷艇被俘。
此次海战失利的原因是多方面的:一、联军作了充分的战斗准备,进攻力量凶猛,炮舰和武器都比较先进。二、清军大沽口军事设施和武器装备仍较落后,而且缺少外援,致使陷入孤军作战。三、清廷无进行整体作战的准备,防御松弛,致使敌舰得以开入海口并登陆至炮台后侧,为夹击炮台提供了条件。四、夜间作战,敌舰以探照灯照射炮台,而清军则难以看清敌舰,极为不利。五、弹药库缺乏掩蔽和保护措施,致使弹药库中弹起火,丧失战斗力。