公元前284年,燕昭王通過外交手段,聯合趙、魏、韓、秦等國共同攻打齊國。燕王将全國的精銳部隊都派出去了,由樂毅統率全軍。秦國将領白起、趙國将領廉頗、韓将暴鸢、魏将晉鄙,各自率領軍隊,按約定日期會合。趙王又把本國相印授給樂毅,于是樂毅統率五國軍隊,浩浩蕩蕩,東奔齊國。齊滔王動員全部兵力,派觸子為大将、達子為副将,親率中軍迎擊五國聯軍,與大将韓聶迎戰于濟水西岸。樂毅身先士卒,四國兵将,無不奮勇争先,殺得齊軍屍橫遍野,血流成河。齊軍主力被殲,觸子逃亡,下落不明,達子收容殘兵敗将,狼狽向國内退卻,韓茲也被樂毅的弟弟樂乘殺死。五國軍隊乘勝追擊,齊滔王逃回齊都臨淄,秦、魏、韓、趙乘勝各自分路攻占齊國邊城,隻有樂毅獨自率領燕軍,長驅直入,勢如破竹,齊國的城鎮都望風而潰。齊⊥踅龃少數人逃到莒地(今山東莒縣),而樂毅接連攻下70餘城,并率燕軍攻占了齊國的國都臨淄,當時齊國僅剩莒和即墨兩城,齊國的危亡到了千鈞一發之際。
齊⊥跆幽訓氖焙睿曾派人連夜向楚國求救,并許諾将淮水以北的土地全割讓給楚。于是楚派大将齒淖率軍20萬,名義上援齊,實際上隻是去占土地。齊王為籠絡齒淖,立他做相國,大權全交給齒淖。而齒淖見燕軍兵強馬壯,恐怕勞而無功,于是私下裡給樂毅通信,想殺死齊⊥酰和燕國平分齊國,立自己為王,樂毅立即答應。于是齒淖将齊⊥醮榆炱來,硬生生地把齊滔王的筋抽出來,将他吊在屋梁上,齊⊥3天之後才死。有個齊國人得知齊王慘死,夜裡約來幾百齊國人,趁着楚國軍隊都駐紮在城外,齒淖飲酒作樂之時,沖殺進去,将齒淖剁成肉醬。由于城門堅閉,城外的楚兵沒了主帥,一半逃散了,一半投降了燕國。
齊王已死,群臣逃散,國中無主,即墨的守臣也病死了,人們便紛紛推舉田單主持即墨城的事務。田單身體力行,率全城軍民固守城池。而樂毅隻是圍而不攻,想迫使兩城投降,于是一直拖延了3年。而此時對樂毅全心信任的燕昭王死了,燕惠王即位,他做太子時,對樂毅就很不滿。燕有個大夫騎劫,很有勇力,也喜歡談論戰争兵法,和太子交情很好,他總想獨攬軍權,常在太子耳邊诽鎊樂毅。待昭王死後,早已探知燕惠王與樂毅交惡的田單認為有了恢複齊國的可乘之機,于是派間諜到燕國去,散布謠言說:齊王早已死了,齊國隻有兩個城沒有攻下來,隻是因為樂毅早就想在齊稱王,但燕昭王對待他很恩寵,是以遲于攻打二城,是等将來有機會時,和南方諸侯聯盟而獨立出來。現在燕惠王剛登位,樂毅和燕王不和,就要和燕分裂,在齊稱王了。齊國人倒不怕樂毅,隻是怕燕國派别的将領來,那樣即墨城可就要慘了。燕惠王早就懷疑樂毅了,聽到這些流言正好和騎劫的話符合,于是信以為真,便派騎劫代替樂毅,召樂毅回國‘。樂毅怕被殺,于是舍棄了家室,逃奔到趙國了。樂毅多謀善戰,又和将士們關系很好,士卒們聽說他被革職,無處容身,都忿忿不平;于是燕軍士氣大降,軍心渙散。
田單有意利用神靈作為号召,他利用城中人祭祀祖先時飛鳥都下來取食的事,散布說這是神來教導他。田單早晨起來對城裡的人說:我夜裡夢見上帝告訴我說:‘齊國該當複興了,燕國軍隊就要敗了。’不久就會有神人來做我的軍師,那時我們将會戰無不克。這時有一個小兵猛然醒悟他的心意,急忙走近田單的戰車前,低聲說道:我可以假借你的軍師嗎?說完扭頭快步離開了。田單急忙從車中跳下來,拉住了他,對着周圍的人說:我夢中看見的神人就是他呀。于是替這個士兵換了整潔的衣服,安排在上座,恭恭敬敬地侍奉他。那個士兵說:我一點能耐也沒有。田單說:不用你說什麼。以後再逢下令,總是向這位天師禀告後才施行,對城裡的人說是奉了神師的指令。這樣對鼓舞齊軍的士氣起了很大作用,而燕軍聽說即墨城内有神師下臨教導,于是交頭接耳,紛紛議論,說齊國得上天的幫助,是戰不敗的,如果攻打他們便是違背了天意,全軍是以都沒有了鬥志。
田單又派親信潛入燕軍說:齊國軍民别的不怕,隻怕燕軍俘虜了他們的士卒,割去他們的鼻子,把他們放在隊伍的前面,去和齊軍作戰。那樣即墨人看了害怕,不敢争戰,即墨也就守不住了。騎劫是個昏庸的家夥,聽信這樣的話,以為這樣真能夠打下即墨,于是就那樣去做。結果激怒了即墨人,見到被俘的齊軍都被割去了鼻子,十分忿怒,更加決心堅守,而且又怕被抓去割鼻子,沒有投降的。
田單又派出間諜,揚言說:城中的人們,他們的祖墳都在城外,如果被燕軍挖了,那怎麼辦?即墨人别的不怕,就是擔心燕軍挖他們祖先的墳墓,毀壞他們祖先的屍骨,那樣即墨城裡的人們會很寒心,無心再守城了。騎劫聽到後,又上當受騙了,果然下令燕軍将即墨城外的墳墓全都挖開,把屍骨扔得到處都是,暴露在荒野之中。即墨城的人們從城牆上看見這種情景,都十分悲恸,号啕大哭,恨得想吃燕人的肉,紛紛要求出城決一死戰。
田單看到士氣高昂,知道到了可以發揮作用的時候了,于是精選強壯的5000人,秘密安排在百姓中間;親自帶着兵器,跟士兵并肩作戰;又把自己的妻妾和親人都編入隊伍中去,把自己的糧饷都分發給部下。讓那樣老弱病殘的人和婦女們上城輪流守城。接着派人到燕軍那裡,說:即墨城中的糧食很快就要吃光了,将會在某某天出城投降。騎劫深信不疑,傲氣地對手下衆将說:我比樂毅怎麼樣?衆将領都讨好說:您比樂毅強多了!燕軍以為齊軍真的要投降了,都雀躍歡呼萬歲,一則是他們打了勝仗,二則是這些離家幾年的士兵早就想快點結束戰争,傳回家鄉。這樣,燕軍就解除了戰備思想。
田單從民間又募集黃金千镒,派即墨的富豪私下裡送給燕軍将領,囑托說将來城被攻破投降時,希望能夠保全一家人的生命安全。燕軍将領大喜,都接了黃金,滿口答應,又發了許多小旗,讓插在門上,作為标記,就不會受到傷害了。燕軍完全放松了戰鬥準備,盲目樂觀,坐等田單出城投降。
田單用各種辦法麻痹了敵軍,自己卻在積極作戰鬥準備。他在城裡征集了上千頭牛,在牛的身上披上赤色的紅織衣,畫上五彩的龍紋,在牛角上綁了鋒利的尖刀,在尾巴上紮上浸透油的蘆A,偷着在城腳挖了幾十個洞,把牛埋伏在裡面。在約定投降的前一天,一切都安排妥當。挑選的5000名壯士全副武裝跟在牛的後面,衆人都不明白這是怎麼回事。
待到傍晚,田單準備酒菜,讓壯士們飽餐一頓,臉上塗上五種顔色,各拿利刃,将牛從洞裡驅趕出來,用火燒着尾巴。牛尾着火,狂燥暴怒,直沖向燕軍營褰。燕軍以為第二天就要受降人城了,是以早早地就休息了。忽然聽見外面巨響一片,都從夢中驚醒,那上千頭火牛拼命地怒吼沖來,身上閃着五彩龍紋,十分可怕。角上綁的利刃随着牛橫沖直撞,燕軍死傷無數,頓時大亂。5000名壯士跟在牛後面,面目紡,奮勇沖殺,大刀闊斧,逢人便砍。雖說人少,但原先有神師助齊的謠言,現在又有神頭鬼臉不知何物的家夥們,趕着火牛沖殺,燕軍早吓破了膽。城中婦女老幼使勁猛敲着各種銅器,驚天動地,田單親率餘部随後殺來。燕軍慌亂一團,個個逃竄,自相殘踏,潰不成軍,死傷遍地,不計其數。騎劫乘車落荒而逃,正遇上田單,一戟刺死。
田單整頓隊伍,乘勢追擊,戰無不克,被占領的齊國地區的人民紛紛起來響應,配合田單攔擊燕軍。被燕軍占領的70餘城,接連收複。
田單大擺火牛陣是戰國後期一次以少勝多,以弱勝強的著名戰例。田單用挑撥、反間、散布欺詐言論、借助人們迷信鬼神觀念、利用火牛陣助戰等等手段,巧妙地欺騙了敵人,激發了人民的鬥志,進而使即将滅亡的齊國,神話般地山河重振,反敗為勝,實為戰争史上的一大奇迹。
田單因複國有功,而被封為安平君,食邑萬戶。燕惠王也悔恨錯怪了樂毅,然而樂毅已不肯再回燕國了。
這次火牛陣大戰,有史官做詩說:
火牛奇計古今無,畢竟機乘騎劫愚。
假使金台不易将,燕齊勝負竟何如?