帝辛五十一年,周武王十一年,武王看到紂王荒淫無道這地方,親也畔了,眾也離了,知道伐紂的時機已經成熟。於是遍告諸侯說:“殷有重罪,不能不伐滅他了”。十二月癸巳,周武王遵文王遺命,率戎車三百乘,虎賁三千人,甲士四萬五千人,由鎬京出發,東征伐紂。師行二十五日,於丁己日到達盟津,在盟津大會諸侯。與會諸侯有庸、羌、 、徽、彭、濮等方國,周師聯軍合計兵力達三十多萬。周武王作了伐紂的總動員,武王從上天設君談起,繼數商紂罪行,最後談到自己這次伐紂是恭行天罰;指出紂惡貫盈,代紂必勝,不要錯過這個時機。戊午日,整個聯軍渡過大河,周武王循諸侯的請求,再作動員。指出商紂不以夏亡為鏡子,而且罪惡超過夏桀,是自絕於天,不可不伐。希望大家不以一心一德,以立不世之功。戊午的次日即已未日,這天正是冬至。黎明的時候,周武王親自檢閱了聯軍,在北上之前,武王又作動員,再次說明伐紂是恭行天罰,要求百夫長以上的軍官,都要果毅勇敢,幫助自己的君主,多立戰功。盟津離紂都約四百里,已未離癸亥只有六天。他們於是“選馬而進”。從而大大提高了進軍速度。終於在癸亥日,“朝食於戚,暮宿百泉”。在共邑百泉,埋鍋造飯,稍事休息,大軍便向牧野進發。周師聯軍到達牧野,已是“厭旦”時分。周武王下令停止宿夜,士卒歡樂歌舞,以待天亮。
當周師東來時,紂王曾使膠 在鮪水候周師,詰問去向。當紂王知道周師要進犯京師的訊息後,不禁拈鬚大笑說:“你周,也不過是一個要方里的小國,也敢在太歲頭上動土,豈不是‘蚍蜉撼大樹,可笑不自量’”。所以,紂王把武王的兵犯朝歌,根本沒放在心上。另一方面,紂王伐東夷的戰爭,由於後來採取了窮追猛打的戰術,經過一個多月的血戰,東夷終於被征服。捷報傳來,紂王喜上眉稍,朝歌一片歡騰。從前線遺來的戰浮,正源源不斷地送來京師。加上時值臘盡,朝廷上下,一方面張燈結彩,挑符換新;一方面又要準備隆重熱烈的祝捷盛典。至於如何對付東來的周師,看來紂王還沒有來得及排上日程。 進入新春,紂王君臣又接連數日,在鹿台忙於計功授勳,大擺九龍盛筵。歡慶征伐東夷的勝利。紂王把周師東來的事,早已忘在了腦後。直到周師兵到牧野,軍報傳來,這才驚散了紂王君臣的歡宴。紂王倉皇從鹿台下來,乘車來到牧邑的黃土崗上。天色已近黃昏,臨時築起高台,遠望周師,但見牧野篝火處處,光燭夜空,猶如火的海洋。周師的人數,大大出乎紂王的意料之外。這時紂王才灑意初醒,火速返回朝歌,組織兵力迎戰。但由於國家的主力部隊,還在遠離京師的東夷前線,只好把從東夷前線遣來的戰浮及大田奴隸,臨時整編起來,作為前鋒;把京師小人及京師宿衛軍,作為後衛,開赴牧野。兩軍對壘,看起來紂旅“其會如林”,人數大大超過周師,但紂旅的士氣,卻極為散渙。
帝辛五十二年正月甲子,天色微明,但見周武王在文王木主前,舉行“歲祭”,接著武王左拄黃鉞,右執白旄,到軍前作戰前誓師,說:“舉起你們的戈,提起你們的盾,豎起你們的矛,聽我誓師”。武王在這次誓師的話中,除再一次揭發紂王的罪行外,特地舉出了紂王重用四方逃亡的罪囚這件事,這是最能觸及方國諸侯對紂王仇恨的。繼而武王又一次表白了自己是恭行天罰。並宣布了戰爭進退擊刺的節制,以明陳戰紀律,以期獲取全勝。誓師之後,武王令師父與百夫,到紂旅前挑戰。於是尚父率戎車三百五十乘,士卒二萬六千五百人,虎賁三千人,沖向紂旅。沖陳的周師如貔、如貅、如熊、如羆;而紂王的軍隊,卻沒有決戰之心,相反地倒是希望武王的軍隊,更快地打下朝歌。所以儘管紂王左右揮動他手中的令旗,命令前鋒應戰,無奈紂軍前鋒不唯不前進,相反都掉轉矛頭,向後殺去。紂軍陣腳大亂,接著武王的軍隊掩殺過來。紂王的七十萬大軍山倒坡滑,一下子潰退下來,直到朝歌外城。在玉門關外,紂王重整隊伍,作背城一戰。於是由小人與衛宿軍組成的紂軍後衛,與倒戈的奴隸及周師聯軍,展開了一場惡戰。只殺得天昏地暗,鬼哭神嚎,“血流漂杵”,滄河水赤。結果玉門又敗,紂王逃入鹿台,想登朝歌寨據險而守。周師聯軍,攻下金牛嶺,也衝進鹿台。在鹿台,雙方又作了最後的拼殺。由於周兵身披有“闕鞏之甲”,紂軍後衛的弓箭,阻止不了周兵的追擊。結果紂王在兵撤朝歌寨途中,被武王擒殺。武王的大軍國,當天便進入商國。甲子次日,周武王命人打掃了通往社壇的道路,祭祀了殷社。尹佚宣讀了 書祝文,武王再拜叩首,宣布了這次革除殷命,是奉上天的明命。最後,周武王把象徵國家的九鼎,由朝歌遷往鎬京。於是,這個立國六百多年的殷商帝國,在殷紂的手中,就這樣被一個地方百里的部落氏族給推翻了。