公元前1050年,周文王姬昌病逝,世子姬發繼位,即周武王,武王繼位後,以示仍秉承文王之天命,繼續利用商朝暫時無暇西顧的良機向東擴張。公元前1048年,牧野之戰前兩年,周武王曾觀兵於孟津(今孟津縣)。《史記》中說“不期而會盟津者八百諸侯”,其實不是“不期而會”,根據甲骨文所揭,此次出兵早有聯絡,關中和江漢間的許多方國都有參與,但諸侯恐怕並無八百之多,從牧野之戰的情況看,基本上都是西南方的羌、戎各國。
而此時的商朝發生了激烈的內亂。帝辛殺了伯父比干,囚禁了另一個伯父箕子,另一些被牽連的貴族如微子等則審時度勢,投奔了周國。武王無疑從來奔的殷商貴族那裡得到了不少朝歌的機密情報。時機已經成熟,武王決定出兵伐商,同時通知在盟津的與盟諸侯一起出兵。
伐商的戰略計劃是:趁商朝主力軍滯留東南之際,精銳部隊以迅雷不及掩耳之勢,深入王畿,擊潰朝歌守軍,一舉攻陷商都,佔領商朝的政治中心,瓦解商政權,讓殘餘的商人及其附屬方國的勢力群龍無首,然後各個擊破。《詩經·大明》中記述此事,稱之為“燮伐(偷襲進攻)大商”,或“肆伐(快速進攻)大商”,和二戰的德國“閃電戰”頗有異曲同工之妙。
公元前1046年1月26日(本詞條採用“夏商周斷代工程”的觀點),周武王親率戰車三百乘,虎賁(精銳武士)三千人,以及步兵數萬人,出兵東征。同年2月21日,周軍抵達孟津,與庸、盧、彭、濮、蜀、羌、微、髳等部族會合,聯軍總數達4.5萬人,不少方國的國君親自趕來。聯軍於2月26日佈陣未完就下了雨,史稱聯軍共有“六師”。軍事史家推測,大概是三百乘戰車,三千名虎賁為一個“裝甲師”,為第一梯隊。其餘四萬多人分為五個“師”,在後面組成方陣,為第二梯隊。後來聯軍冒雨繼續東進從汜地(今滎陽市汜水鎮)渡河水(黃河,一說由孟津渡河)後,兼程北上,至百泉(今輝縣西北)折而東行。27日清晨,周武王莊嚴誓師說:“俗話說,母雞司晨,是家中的不幸。現在紂王只聽信婦人之言,連祖宗的祭祀也廢棄了。他不任用自己的王族兄弟,卻讓逃亡的奴隸擔任要職,讓他們去危害貴族,擾亂商國。今天,我姬發是執行上天的懲罰!……戰士們,努力呀!”,周軍將士們士氣大振,即為《尚書》所記載之“牧誓”。28日拂曉,聯軍進至牧野。《詩經》記載:“牧野洋洋,檀車煌煌,駟騵彭彭。維師尚父,時維鷹揚。涼彼武王,肆伐大商,會朝清明。”。
然而,遠方前來阻截的商軍陣形也漸漸顯出輪廓。本來鬥志昂揚的將士們不禁倒抽了一口冷氣:商軍幾乎要一直排到天邊,一面面旗幟一望無際。雖然不知道對方確切有多少人,但要遠遠多過聯軍。聯軍將士剛剛鼓起的勇氣又快要低落了。
朝歌方面,第一批緊急軍情前腳剛傳到,聯軍自己後腳就跟著來了,著實被打了個措手不及。朝歌城內沒有足夠的精兵可以破敵,而且也沒有可用的戰車,單靠步兵,很難和衝擊力強大的戰車陣相抗衡,更何況周軍士氣正銳。
帝辛驚聞周軍來襲,只好倉促武裝大批奴隸、戰俘,連同守衛國都的軍隊,開赴牧野迎戰。根《史記》記載,帝辛出動的總兵力有七十萬人,另一些文獻記載是十七萬。《詩經·大明》稱:“殷商之旅,其會如林”。
評價
牧野之戰是中國歷史上以少勝多,以弱勝強,先發制人的著名戰例,也是中國古代車戰初期的著名戰例。它終止了六百年的商王朝,確立了西周王朝的統治,為西周時期禮樂文明的全面興盛開闢了道路。牧野之戰中所體現的謀略和作戰藝術,也對中國古代軍事思想的發展具有不可低估的意義。
隨著時間的推移,牧野之戰也蒙上了一層又一層神秘的面紗。當時的記錄下,帝辛尚不失為一個有嚴重缺陷的英雄人物,然而到了後世,“紂王”卻成了荒淫無恥、殘暴不仁的昏暴之君,被潑上了越來越多的汙水。與之相應,牧野之戰這場“血流漂杵”的征服戰爭,也就成了弔民伐罪的反抗暴政的正義之戰。在後世儒家的傳說中,周軍“前歌後舞”,沒有殺一個人,沒有流一滴血,商朝就自行崩潰,在人民的擁戴下,武王登上了天子的寶座,從此刀槍入庫,馬放南山,天下太平。當然,這樣的神話,在後世仍然一場又一場地上演,不過再也沒有像牧野之戰這樣成功的了。