8月2日夜,俄军开始总攻,总指挥为苏波季奇少将,其作战意图是,俄军一部从瑷珲对岸渡江佯攻,主力由苏波季奇少将率领,从黑河屯上游对岸的上海兰泡偷渡过江。这样,俄军主力3日凌晨,从上海兰泡村强渡黑龙江,发起对中国黑河屯的包抄总攻。
佩琴金指挥的哥萨克骑兵部队,凌晨1时过江,对黑河屯清军部署实施侦察,之后占领战斗地段的右翼。在海兰泡炮兵隔江火力掩护下,俄军包抄和正面佯攻部队全面展开,进攻总兵力达到14500人。
驻守北路的黑河屯统领崇昆山带领三营清军,借助战壕,阻击俄军,战斗异常残酷,是夜清军阵亡七十余人。此后,中俄军队又在位于丘陵地带的小村夹龙山发生激战,俄军左翼为有火炮支援的步兵,右翼为哥萨克骑兵团。激战不多时,清军便火力衰竭,放弃阵地,开始退却,火炮和弹药也被俄军缴获。
8月3日上午7时许,清军五百多士兵携两门火炮,与一支骑兵小部队向五道壑洛行进,试图阻止从上海兰泡村强渡过来的俄军主力。就在这时,海兰泡俄军隔江炮轰清军阵地,偷渡而来的俄军也摆出战斗队形猛攻清军。清军陷于被动,激战4小时后,清军逐渐不支,被迫放弃阵地,退却瑷珲城,大黑河屯就此沦陷。