3月1日,杜鬆軍抵達薩爾滸(今遼寧撫順東大夥房水庫附近)。杜鬆分兵為二:一部在薩爾滸駐紮,自己親率另一部前往吉林崖,攻打界凡城。由於杜鬆軍輕敵冒進,先於其他各路軍與後金兵遭遇。努爾哈赤決定先集中兵力與杜鬆軍決戰,並故意避其鋒芒,親率大軍猛攻明軍薩爾滸大營。炮聲隆隆,殺聲震天,不久,後金兵便攻下了薩爾滸大營。攻下薩爾滸大營後,努爾哈赤率軍馳援吉林崖。其時,杜鬆軍與駐守吉林崖的後金兵激戰正酣,後金兵正節節敗退,援軍的到來立即使戰場局勢發生逆轉,杜鬆軍腹背受敵,陷入重圍,士氣低落,而後金兵則軍心大振,杜鬆身中十八箭力戰而死,總兵王宣和趙夢麟全部戰死,西路明軍全軍覆沒。
這時北路馬林軍已進至薩爾滸東北的尚間岸,遇到杜鬆軍的敗兵,得知西路軍已覆滅,馬林頓時不寒而栗,士卒也個個喪膽,急忙轉攻為守。
當夜宿營,馬林命在營壘外掘了三層塹壕,外邊又擺了火炮,一副固守的樣子。第二天,努爾哈赤率大軍趕到,立即向明軍發起進攻。明軍幾乎不堪一擊,大部潰逃,主將馬林率數騎逃回開原。身為監軍的潘宗顏率眾頑強禦敵,“奮呼衝擊,膽氣彌曆”。終因寡不敵眾,明軍潰敗,潘宗顏戰死,死時“骨縻肢裂,慘不忍聞”。
其時,葉赫部軍兵正打算馳援馬林,突聞馬林兵敗,潘宗顏戰死,軍心動搖,不敢與後金兵交戰,不戰而逃。
其實,潘宗顏早已知馬林舞弄詩文尚可,指揮對敵則是外行,徒具虛名,並無將才。早在出師之前,潘就曾致書楊鎬,言:“林庸懦,不堪一麵之寄,乞易別帥當此重任,而以林遙作後應,庶其有濟。不然,不惟誤事,且恐此身實不自保。”如此重要的信息,楊鎬卻未予理睬。幾天後,潘宗顏之言果然應驗。
東路軍在驍勇善戰的劉綎的率領下,已深入後金軍陣地,並未得知兩路明軍兵敗的消息。為延緩劉綎軍前進的步伐,努爾哈赤下令在劉綎軍前進的路上砍斷大樹阻塞道路,設置了三道大路障,使劉綎軍行進十分艱難。其時,天寒地凍,氣候惡劣,明軍後方供給困難,沿途皆有明軍凍餓而死。
努爾哈赤坐鎮赫圖阿拉,指揮大貝勒代善、二貝勒阿敏、四貝勒皇太極前去迎戰劉綎軍。為將劉綎軍引入後金軍的伏擊圈,努爾哈赤利用杜鬆兵敗時繳獲的杜鬆令箭,派降順後金的漢卒冒充杜鬆軍卒,到劉綎軍前,假裝告急說:西路杜鬆大軍已抵達“奴酋”都城,急盼東路大軍並進,將敵城合圍,一舉將其拿下。
劉綎信以為真,唯恐杜鬆將軍拔得頭功,急令火速進軍,薑宏立率朝鮮援軍緊隨其後。這樣劉綎軍一步步進入到後金兵的伏擊圈內。待劉綎醒悟過來時,發現自己已陷入重圍。劉綎果然是個猛將,率軍死戰不退,後金軍竟一時攻打不下。此時朝鮮盟軍已投降,劉綎軍更加孤立。努爾哈赤命手下大將輪番上陣迎戰劉綎,代善、阿敏、皇太極率兵殺出,劉綎奮力死戰,身中數十箭,力竭而死,明軍潰敗。其子劉招孫救父苦鬥,也當場陣亡。剩下的明軍很快被後金軍殲滅,南路明軍也全軍覆滅了。
正當劉綎軍浴血奮戰時,李如柏本可以馳軍策應,但李如柏畏敵如虎,不敢增援,使劉綎孤軍奮戰,全軍覆沒。明朝四路大軍之間缺乏策應,各自為戰,經略楊鎬調度無方,是後金兵能夠從容地各個擊破的很重要的原因之一。
努爾哈赤再回軍準備消滅西南路明軍,卻撲了個空。李如柏雖為將門之子,卻膽小如鼠,一出兵就行動緩慢,故意落後。薩爾滸大戰已經結束,他才進至虎攔崗(今遼寧本溪市東)。這時坐鎮沈陽的楊鎬已得知前線大軍潰敗,急命李如柏退軍。李如柏接令如蒙大赦,急忙班師,明軍慌忙撤退,沿路遇後金小股部隊鼓噪,竟以為是後金主力部隊發起攻擊,驚恐潰逃,自相踐踏,死傷一千餘人。
至此,明四路大軍合朝鮮和葉赫援軍共十餘萬人征伐後金,以後金軍大勝和明軍慘敗而告終。薩爾滸之戰成為我國曆史上又一個以少勝多的戰例。
據《遼事實錄》記載,明軍在這場戰役中傷亡十分慘重,死於戰場的將領,約有三百餘名,士兵陣亡者共四萬五千八百七十餘名,騾馬槍炮輜重丟失無數。而金兵據說死亡不足二百人。明朝的遼東防線,全部為後金所突破。薩爾滸之戰是後金由弱轉強,明朝由強轉弱的轉折點。
薩爾滸大戰後,明軍再也不敢對後金主動發起攻擊了。努爾哈赤則乘勢攻占開原、鐵嶺,征服了葉赫部,完全掌握了遼東的戰略主動權,為清軍日後入關統一中國打下了基礎。