崇禎十七年(1644年),滿清攝政王多爾袞乘中原大亂之際,率領20餘萬清軍殺入山海關,並迅速取代明朝,建立了清廷的統治秩序。與此同時,沙俄也加速了向遠東地區擴張的步伐,以彪悍的哥薩克騎兵為先鋒的沙俄軍隊侵入了黑龍江流域,並在此地建立了許多堡壘。沙俄的入侵敲響了大清帝國的警鐘,東北作為清廷發家的龍興之地,其戰略價值不言而喻,於是清廷開始了反擊。順治十四年(1654年),清軍組織了對沙俄的首次反擊,俄軍在野戰中被擊敗,被迫逃入瑪爾城拒守。瑪爾城是沙俄精心修築的歐式棱堡,防禦值極高,清軍久攻不下,不得不撤出戰鬥。清軍撤退後,沙俄殖民頭目斯捷潘諾夫再次率領哥薩克騎兵侵入黑龍江流域。
順治十四年(1657年),清廷詔命寧古塔昂邦章京沙爾虎達組織第二次攻打沙俄軍的軍事行動,當時因為大量清軍已經進入關(山海關)內,東北防務極度空虛,再加上清軍主力深陷西南戰場(當時清軍正與南明在湘、貴、川西南等省的南明軍進行著曠日持久的拉鋸戰),是故無暇馳援東北戰場。沙爾虎達只得依靠稀少的清軍以及東北各族人民組建的「義勇兵」與俄軍交戰,此外,沙爾虎達還向清朝的藩屬國朝鮮(李氏朝鮮)徵調軍隊和糧食,以強化攻俄的力量。
「大國將發兵伐羅禪(沙俄),饋餉甚難。本國(李氏朝鮮)亦當助兵,請自本國,齎五月糧以送……差北道虞侯申瀏為領將,率哨官二員,鳥銃手二百名,及標下旗鼓手、火丁共六十名,帶三個月糧往待境上」。(節選自《李朝實錄》)
順治十五年(1658年)五月,朝鮮軍將領申瀏率朝鮮軍抵達寧古塔。沙俄虎達將清軍與朝鮮軍統一編組。清軍多騎兵,強在強弓勁弩,利於野戰;朝鮮軍多裝備火器,強在火力迅猛,利於攻堅。沙爾虎達還督促清軍打造了47條戰船,每條戰船上都配備了火炮的火槍手,以此來控制松花江、黑龍江的江面,掌控制水權。
據俄國史料記載:「博格達(皇帝)大軍在過了松花江口的阿穆爾河(黑龍江)上乘坐四十七條大船並帶著大量火器裝備,用大炮和小型火器進攻阿穆爾軍役人員,他們從船上用大炮轟擊」。
六月,沙爾虎達率中朝聯軍從三姓(今黑龍江省依蘭縣)出發,不久後,雙方即在黑龍江與松花江匯合處(今同江市)附近遭遇。雙方再次展開激戰,清軍充分發揮白刃戰優勢,紛紛躍上俄軍戰艦與俄軍白刃格鬥,朝鮮軍則用火器掩護清軍攀登。中朝聯軍與沙俄哥薩克軍大戰三天,最終中朝聯軍大勝。擊斃斯捷潘諾夫以下二百七十餘人,生擒十人,擊沉沙俄戰船七艘,繳獲三艘,僅一艘敵船逃出戰場,因發生在松花江口,此戰遂稱之為松花江口之戰。戰後,順治皇帝對參與此次戰役的有功戰士進行了封賞,而朝鮮軍將領申瀏在回到朝鮮後,朝鮮孝宗也破格提拔其為嘉善大夫。