齐闵王赶走了孟尝君,自认为可以做皇帝。大夫狐咺上朝劝谏,闵王下令将他杀并示众。从此,齐国人心离散。
自燕昭王筑金台以来,燕国日益富足强盛。看到齐闵王昏庸狂暴,燕昭王觉得是报仇雪耻的时候到了,就与大将乐毅商讨进攻齐国的计划。乐毅说:“齐国是一个军事大国,要取胜它,必须与中原各国联合出兵。”于是燕昭王就派乐毅先出使燕国南面的紧邻赵国。乐毅本是赵国人,与赵国平原君的关系不错。他就与平原君一起说服了赵惠文王。正巧此时秦国也有使者在赵国。乐毅就借此机会说服秦使,让秦国也参加伐齐。燕国的另一使者剧辛则到魏国说通了孟尝君,让他帮助动员了魏、韩两国也一起出兵。这样,周赧王三十年(公元前 284 年),乐毅统率秦、魏、赵、韩、燕五国大军,大举进攻齐国。联军在济水西岸大败齐军。齐军大将韩聂战死,齐闵王逃回齐都临淄。
大败齐军后,各诸侯国的军队乘胜收取了齐国边境的一些城市,然后回国了。只有乐毅率燕军直逼临淄。齐闵王被乐毅的燕军吓破了胆,只带了家眷和少数文武官员弃都而逃。
乐毅占领了临淄,将齐国的宝藏及宗庙祭器,以及原先齐国掠夺来的燕国的国宝统统收集起来送回燕国,同时又带兵继续追击齐闵王的军队。乐毅英勇善战,又善于运用机谋,因此,大军一路上势如破竹,齐军望风披靡。不多久,乐毅就攻下了齐国七十余座城池。这时齐国只剩下莒城(今山东省莒县)和即墨两地未被攻下。
齐闵王逃往莒城,并向楚国求救。楚顷襄王派大将淖齿带兵二十万救齐。淖齿到了莒城,见齐闵王大势已去,就杀了闵王,企图自立为王。
乐毅的军队围攻莒城。但由于楚军力量强大,久攻不下。于是乐毅就移兵包围即墨。乐毅对即墨采取了围而不打的战术。而且允许城内百姓出城耕田购粮。他也约束燕军,不准掳掠百姓。他想让即墨城内的军民,不战而降。
即墨的守将这时正好病死,城中没有了领兵御敌的主将,于是,大家就选举了一个叫田单的人出来主持守城。田单是一个很有智谋的人。他从小熟读兵书,希望有朝一日能为国出力。但齐闵王不懂得用人。田单只在临淄做过市场管理员那样的小官吏。在燕兵入侵,与齐国的官员、百姓逃难到即墨的路上,田单机智地将当时车轴两边突出的部位锯掉,并包上了铁皮,因此,他坐的车行动灵活,顺利地到达了即墨。而许多官员坐的车,都因为车轴太长,互相挂碰,在乱哄哄的逃难中有的车翻人亡,有的因行动缓慢而成了燕军的俘虏。
田单当上即墨守将后,不盲目出战。他一面组织人力修筑加固城墙,准备坚守,另一面派人潜出去打听敌军的情况和外面的形势。
不久,派出去的探子回报说燕昭王死了,继位的燕惠王不信任乐毅。于是,田单立即派人去燕国放风,说乐毅迟迟不攻莒城和即墨,是想在齐国收买和笼络人心,自己当齐王;否则,齐国的七十多座城池都攻下来了,还剩这小小的两个地方会几年攻不下吗?这些谣言不久传进了燕惠王的耳中,让他更加不满乐毅。于是,他派自己的亲信将军骑劫去即墨前线代替乐毅。乐毅很伤心,又怕回去受到燕惠王的迫害,就投奔赵国去了。
骑劫到任后,他改变了乐毅的战法,他立即下令加紧攻城,并且在攻城时将一些俘虏的齐军割去鼻子,驱赶他们打头阵;他还让士兵将即墨附近齐人的坟墓全挖开,将骸骨点火烧掉。即墨城内的军民见燕军这样残暴,个个恨得咬牙切齿,纷纷到田单那里请求出阵与燕军决一死战。
田单看到城内军民的抗敌士气高涨,又施展出了第二条计策:他调遣出城内的精壮军民五千人,日夜在隐蔽处训练,同时只让老弱军人和妇女守城。还收集了城内的金子,叫人带上扮成富翁偷跑出城去向骑劫投降,请求燕兵在破城后不杀害、骚扰他们的家属。骑劫见了,心花怒放,觉得即墨守不了几天了,就让手下的军官士兵尽情地作乐几日,准备最后攻城。
就在这时,田单将城内的牛统统集中起来,约有一千头左右,在它们身上披上画有五颜六色的龙纹图案的绸布,牛角上绑上锋利的尖刀,牛尾上缚着浸透了油的麻丝,在城墙根凿开了几十处洞,将牛牵到洞口。待到晚上,他命士兵们在牛尾上点着了火,将牛群统统赶出洞外。牛尾上着了火的牛,疯狂地冲向燕军的阵地。而那五千训练有素的精壮士兵,也都脸上涂着油彩,在牛群后冲出。而燕军阵地内,麻痹大意的军官士兵们都睡得死死的,一点戒备也没有。突然间被疯牛的嚣叫声和烛天的火光惊醒,只见大批花身怪兽和花脸神将杀入,个个吓得腿脚发软,魂不附体,以为是天兵天将杀来,只顾得抱头鼠窜逃命,哪还有抵抗的勇气和胆量?!
骑劫正在中军帐内喝酒,听得喊声出去,也吓得莫名其妙,根本无法阻止军队溃逃,自己只得也随混乱的队伍逃走,不料田单已率齐军追杀上来。燕军互相践踏,溃不成军,混战中骑劫被田单一戟戳死。田单率军乘胜追击。燕军失去了主帅,无法抵抗。而那些刚被燕军占领的齐国城市里的百姓,也纷纷起来响应,他们赶走了燕军,迎接田单率领的齐军。于是,田单一直率领齐军将燕军赶出了齐国的北部边界。临近灭亡的齐国又得以恢复。
与田单反击燕军的同时,莒城的齐国人也乘机杀了楚将淖齿,将齐闵王的太子法章迎进城去,立为齐王。这就是齐襄王。周赧王三十六年(公元前279年),田单将齐襄王迎回临淄。由于田单恢复齐国的功劳,齐襄王将他的家乡安平地方一万户的土地赐给他,并封他为安平君。