3月9日,直鲁联军在北塘登陆,被国民军击退。国民军随即封锁大沽口,不准任何船舶驶入。大沽口涉及“辛丑条约”,天津外国领事团及北京外交使团因此先后提出了抗议。鹿钟麟只得答应重新开放大沽口,但提出条件:外轮不得为直鲁联军运兵运械,外船入口不得有直鲁舰船尾随混入。
3月12日,日本领事馆通知国民军,说当天上午将有一艘日本军舰进入海口,要求国民军放行。国民军方面答应了,但日舰一直拖到下午3点才进入海口,而且后面还跟着一艘船(后查明是另一艘日舰)。
国民军生怕直鲁联军跟在日舰背面发动偷袭,遂开枪要求缓行,日舰即开炮向岸上还击。经过一阵交火,日舰退去,双方互有伤亡。
事后,日本以国民军破坏“辛丑条约”为由,联合英、美、法、意等八国公使向执政府发出最后通牒,要求停止天津、大沽口一带的战争,撤除对大沽口的封锁,否则各国海军将采取行动。
通牒设定的期限是3月18日正午之前。3月17日,执政府外交部做出答复,除为了维护国家体面,空泛地表示通牒内容“超越‘辛丑条约’内容之范围,不能认为适当”外,实际上完全接受了通牒的要求。
当天下午,北京各民间团体在北京大学三院召开联席会议,决议在天安门前举行大型请愿活动,要求执政府驳回通牒,并驱逐八国公使出京。
执政府的卫队旅旅长宋玉珍年近六十,且身体又不好,具体事务方面主要由参谋长楚溪春负责处理。楚溪春就在这一天接到了上级命令,说第二天学生要在天安门前开会,会后将到吉兆胡同(段公馆当时所在地)和执政府门前请愿,卫队旅被要求到时分别在这两个地点严加戒备。
因前线战事紧张,鹿钟麟已经带着部队到天津与奉军作战去了,冯派的另一名骨干李鸣钟代理北京警备司令,楚溪春接到的就是李鸣钟所下达的命令。李鸣钟在命令中还一再叮嘱,要求在与学生接触时必须万般忍耐,做到打不还手,骂不还口,以免发生意外不幸事件。
这让楚溪春感到十分为难。之前北京已经有过几次学生游行,均未出过事故,原因是那几次都有鹿钟麟的大刀队在两旁随行,大刀队兼维持秩序,同时与游行组织者也形成了默契。这次大刀队也随鹿钟麟去了前线,李鸣钟派不出人来与游行队伍随行,完全都要靠卫队旅独立维持。
楚溪春与段祺瑞的侄子段宏纲是保定同学,私下关系很好,他对段宏纲诉苦道:“士兵所受教育有限,简单率直,能做到这样的忍耐吗?恐怕难免要酿成事故。”段宏纲只好安慰他:“只有兄等尽最大的努力来维持防止,其他还有什么办法呢?”
卫队旅名为一旅,实际仅有两个步兵营和两个机枪连。楚溪春分了一下工,他亲自到吉兆胡同部署警备事宜,执政府那边则由卫队旅参谋王子江负责。部署时,规定前几排的士兵不准扎皮带,以免接触时发生殴打;中间几排的士兵可以扎皮带,但不准拿武器;后面几排的士兵才允许携带武器。
1926年3月18日上午,浩浩荡荡的游行队伍在天安门前集会,会后首先到位于铁狮子胡同的执政府国务院门前请愿。游行队伍公推了共产党人李大钊等五名代表,要求面见段祺瑞、贾德耀。
当时段祺瑞在吉兆胡同,贾德耀已匆匆躲开,卫队便答复说二人均不在。这一答复引起群情激愤,众人高唱着《国民革命歌》和“打倒列强除军阀”、“打倒段祺瑞”等口号,向执政府冲去。
据在场的上尉军械员邱霖说,当游行队伍冲击执政府时,学生用带着铁头的木棒打士兵的头,并且痛骂士兵是“卫队狗”、“军阀走狗”,这时士兵还能遵守“打不还手,骂不还口”的规定,只是一个劲儿地被迫后退。
眼看着学生就要冲进执政府的大门,负责指挥警卫的王子江从没有经历过这种阵势,急忙命令附近的士兵:“开枪吧!”他的本意是让士兵朝天鸣枪,把学生吓跑就算了。开始士兵也确实是向空中鸣枪的,但是并未能够吓退游行人群。游行队伍中还有组织者大声喊道:“不要怕呀!是放空枪,不要怕!”
人浪继续往前涌去。处于高度紧张状态的卫队终于失控,他们竟然向游行队伍实施了平弹射击!
铁狮子胡同地方狭小,游行队伍人多拥挤,无法卧倒或躲避,顿时血肉横飞,陈尸遍地。现场气氛恐怖,惨不忍睹。