桂军攻击不力,南门的丁槐军也就失去了策应。进攻也明显受阻,两支乾军在攻击了三个小时后终于支持不住败退下来,是夜的攻击就这么虎头蛇尾的草草结束了。
林苑生和丁槐当然不能就此罢休。又于4月27日和28日连续发动了两次攻击,但由于法军已有准备。乾军终究无法突破由野战炮、哈乞开斯机关炮和格拉斯步枪组成的炽烈火网,只能徒增伤亡,三日攻击下来,桂军和仓促招募、未及操练精熟的苑军暂时失去了战斗力,攻击河内的主力落在了丁槐的肩膀上。
迫于河内城外炮台威胁巨大,丁槐决定先将城外的炮台踹掉后再行攻城,由于桂军、苑军在之前的战斗中伤亡惨重,已经无法继续攻击。当初被林苑生临时派去打援的何秀林部除留两营1000人帮助刘仁义打援外,剩下的都被调回参加进攻。
4月28日入夜,刚刚在白天击退乾军一lún_gōng击的东门外炮台内法国守军和武装教民刚准备休息,似乎发现炮台前二百丈处有所异动,颇感纳闷,不知乾军的葫芦里都卖着什么药,直到4月30日凌晨才猛然发现乾军已经不声不响的用坑道作业的方法推进到了离炮台仅仅数丈远的地方,随即慌忙以有限的兵力发动反击,可是法国士兵和武装教民待冲近乾军阵地的时候突然发现无数三尺长的草把竖起,大队的乾军以草把为掩护发动了对炮台的总攻。以草把抵挡法军枪弹的射击。毕竟城外炮台的法国守军兵力本来就单薄,还混有不少越南土著士兵和武装教民,战斗力不如正规部队。在丁槐的攻击下,人数不多的法国守军被迫放弃了炮台,仓皇撤回城内。
“计数万束,滚掷前进,草把墙立,人不受枪,草压炮台,即可立破。”林苑生在自己的《入越笔记》当中做了这样的记述。这就是滇军最最拿手的“滚草龙”战法,也正是凭借这个战术。乾军逐步控制了河内城外法军的所有据点,终于断掉了河内守军的一臂;而同时刘仁义也成功的用缴获的运输船封堵住了红河航道。河内终于陷入了四面被包围的绝境了。
但在同时,丁槐也到了黔驴技穷的地步。他引以为豪的“滚草龙”战法无法用于攻城,缺乏重型攻城武器的乾军只能用人海战术发动强攻。虽然城外的据点都被乾军攻占,但是城头守军和明江上的炮舰火力依然不减,乾军慑于法军的火力猛烈,根本无法在白天行动,但凡白天一有大队人马的移动,立刻会招致凶猛而准确的火力覆盖,只能借助夜色发动夜袭。
但就算能攻到城墙脚下,乾军也很容易被城头密集的火力死死压制得动弹不得,若夜间无进展,黎明时刻必须及时撤回;若天亮后再不能撤回,那这群可怜的官兵们就只能一整天趴在城墙根下、依靠占据城外高地的战友们不断的放枪放炮分散、削弱城头法军的火力、提心吊胆的等到天黑才能撤回营地。这一个白天的日子可是非常不好过的:不仅要窝在城墙根脚下忍受着炮火,连吃饭都成了大问题。由于与后方的联系被法军火力阻隔,饭根本送不上去,送饭的兵丁们只能用布包裹着饭团用力投掷过来,如此做也是万般无奈之举,在密集火力的压制下,投饭团的兵丁所承受的心理压力可想而知,在这种压力下投掷的准头自然也是“可想而知”了,这样的饭团到底能有多少能进入那些城墙根下趴着的可怜人的肚子里只有天知道了,更加倒霉的是如果哪天缺米,只能熬粥喝的时候,那么可怜人们就更加可怜了。这一天也只能饿肚子了,总不能用布包着黏糊糊的粥往前抛吧?
即便如此,林苑生和滇桂军及黑旗军的将领们还是绞尽了脑汁,想尽了办法希望有所突破,5月10日、11日、20日和21日,黑旗军用地道突击加地雷爆破的方法连续发动了两次突击,但是因为埋雷不得要领,仅仅是“地雷发,城微崩,飞石毙我军数人”的结果,缺口炸开后,后续部队又无法及时冲上。法军封堵及时,缺口处几乎成了乾军的停尸场,缺口也很快被乾军士兵的尸首重新“封堵”。场面甚惨。
由于法军凶猛的火力,乾军的进攻一筹莫展。法国人托马兹在他的《印度支那征服史》是如此描述的:
“9084年3月21日至5月22日。法军二千名为乾军二万五千名(有夸张,直接参加进攻的乾军总数不过一万,而且还不是同时投入战场)围攻,乾军武器良好,作战勇敢顽强,其进攻河内之坑道及防守之工事,均获法军官一致赞扬。乾军七次进攻,三次摧破城墙。城墙缺口填满乾军尸体。”
面对惨重的伤亡,乾军的士气低落,林苑生也意识到这样的进攻只是浪费士兵的生命,没有任何效果,5月22日夜,林苑生召集诸将会议,桂军将领陈朝纲等人颇为沮丧,认为再打下去没有意义,应该撤兵,黄守忠和吴凤典等黑旗军将领和今野岩夫则认为应该等那门120毫米大炮到来后继续进攻(由于雨季提前到来使得道路泥泞难走。这门大炮还在来河内的路上艰难跋涉),刘仁义则默不作声,会议最后的结果。在林苑生的一意坚持下,还是继续进攻,但林苑生听从了今野岩夫的建议,不再盲目发动进攻,只是严密合围,只等那门120毫米大炮到来。同时林苑生还向赵沃接连求助,要求再派援兵。
由于原来助刘仁义作战的滇军炮