在镇南关起义同时,孙中山也在筹划河口起义,河口是滇越铁路的交通孔道。孙中山计划以此地为依托,进而图取云南腹地。1908年年初,孙中山派“中华国民军南军都督”黄明堂再次带领了关仁甫、王和顺,以及曾经参加过镇南关之役的100多同志在深夜由越南老街进入云南省界,与潜伏在铁路工人之中的200左右同志相会合,再联合部分退伍但失业的散兵游勇,在孟坝寨设立前敌指挥部,伺机发动起义。
4月30日凌晨,“中华国民军南军都督”黄明堂率军向河口发起袭击。驻扎在云南河口的清军,有一支警察部队,还有四个营的地方巡防部队,警察对清朝的忠诚度最低,他们首先反正,并且击毙其管带蔡正钧,革命军与反清义军会合。巡防营其实是改编自原来的绿营和勇营,只不过是全部持枪作战,都是汉人,他们对清朝的忠诚度比警察高不到哪里去,在投降革命活下去和忠于清朝战死的抉择中,他们很果断地选择了前者,但因为是正规部队,服从是天性,这时就需要有人带个头才能搞军变。第二天,清边防副督办王镇邦被他下面的一个守备用手枪打死,剩下的部队立即全体反正,河口落入于革命军之手。
黄明堂以中华国民军南军都督名义,张贴布告安抚民众,严肃军容军纪。革命军得到十响毛瑟枪一千余枝,子弹二十万发。人数也增加到一千多,于是乘胜分兵出击。至5月3日,连克南溪、新街、坝洒,直逼蛮耗、蒙自,队伍又扩大了。但是问题出现了,粮食接济不上,钱也没有。
距黎东方先生的记载,当时在越南的胡汉民得到消息后,写信向孙中山详细报告情况:士兵每天每人需要三毛钱作伙食费,全军三千多人,一天就得花去一千元。河内机关部根本没有多少钱。革命军打下河口以后,在当地征收到义捐三千五百元,却花去了四千八百元:赏给熊通二千(杀王镇邦的花红),赏给其他的人二千八百(有些是攻占河口的四座炮台,有些是杀了他们的哨官来降的)。
胡汉民一面请孙中山在南洋筹款,并表达积极向上的革命乐观主义精神:“若得十万金,分半先为粮食之用,分半预备子弹之补充。则大军所至,势如破竹,攻城略地,无后顾之忧矣。一面向河内华侨梁成泰的儿子梁秋,借了三千元救急(梁秋已经捐过两千)。
身在新加坡的孙中山接到胡汉民的报告以后,在5月20日写信给邓泽如与黄心持,请他们向一位“弼翁”与一位陆秋杰设法,“若秋君或弼翁肯任此十万,当酬以云南全省之矿权专利十年也”。
5月5日,孙中山委任黄兴为“云南民军总司令”,立即赴前线督师。黄兴赶到河口,投诚清军拒不听从调遣,黄明堂、王和顺也不服从指挥。黄明堂拨给黄兴100人,这些人走了不到一里,“向天开枪一排,齐声呼疲倦不已,克强再三抚慰,无效”。又走了半里地,他们突然一哄而散。造成这种局面的原因很复杂,一方面是革命人员成分复杂,有贫下中农、有会党,有散兵游勇,不好组织,另一方面, “中华国民军南军都督”与“云南民军总司令”,名字都很大气,但可能有点职能重复,到底谁领导谁,不太容易搞清楚。黄兴最终只得折回河口,约了王和顺来谈谈情况。王和顺说:兵太少,子弹太少。黄兴要求抽调各路的一部分兵力,自己带着袭取蒙自,然而多数的将士皆不肯听令。黄兴感觉到,只有把以前跟他在钦廉作战过的一二百同志召集来,才有办法。当统帅的,倘若没有“亲兵”,就不能指挥各军。于是,他决计先回越南一趟,等候老部下来,再来打一仗。不料,黄兴刚进入河口对岸的越南老街,5月12日,黄兴在越南老街遭到法警截留,很快被驱逐出越南。
清政府通过外交渠道,援引国际公法,指责法国对反政府武装进行事实性纵容,使其在越南境内集结,革命力量公然结队过境,并利用滇越铁路运送军事物资。最后,越南殖民当局应清政府要求,封锁中越边境,阻禁革命党及粮械进入云南,并驱逐大批在越革命党人,使河口起义军陷入孤立无援困境。
当时锡良任云贵总督,起义爆发后,他一面调兵镇压,一面向清政府告急,清政府即派刘春霖帮办云南边防事务,令广西提督龙济光率防营增援,又命两江总督端方、湖广总督陈夔龙接济饷械,四川、贵州地方也派军往援。同时不惜重金,拨专款五十万两给锡良,作为增募新兵与供应其他开支,并实发枪械一万枝,子弹370万发。
革命军与清军相持20多日,最后被击败。5月26日,清军占领河口。黄明堂率600余人撤至越南境内,法国军人命令革命军缴械,革命军不同意。两军冲突,相持了几个月,后来由当地华侨领袖出面调停,革命军缴械后去往新加坡,法国当局则送旅资。
600多人其后到了新加坡,英国殖民当局不许他们上岸。法国政府驻新加坡领事向英国官吏交涉,声称法国在革命军与清军交战之时严守中立,是基于承认革命军为合法交战团体,因此,这些人是“国事犯””,不是“乱民”。英国当局也不傻,既然是“国事犯”,为什么不让留在你们法属越南?几番交涉,英国最后虽然同意他们上岸,但是立刻把他们拘捕。孙中山让张永福请了律师,把他们都保释了出来。陈楚楠还特地为他们创办了一个中兴石厂,安插了他们中的一些人去工作,其他人分别来打槟榔屿、吉隆坡、毗叻(霹雳)文岛的矿场、农场与工厂工作。