伊尹建议商侯成汤先从舆论上对夏王朝发起攻势,把夏王的缺点和弱点进行扩大化宣传,把所有天灾人祸造成的不良后果都归罪于夏王的无道,编造一些足以引起万民憎恨的恶行四处传播,同时蛊惑夏王朝的一些正直大臣直言犯上,激怒夏王作出失控的行为。夏王姒癸果然上当。
商汤十四年(丁丑,前1604),夏王姒癸因老臣关龙逄在朝廷的大殿上当众指责羞辱他,忍无可忍,下令将他即刻处死,引起朝臣恐慌。百官对夏王私下多有非议。伊尹又命人把夏王种种无道行为扩大化,散布到诸夷各国,声称夏王无道,上天惩罚,必将降下更大的灾难,使夏王朝四夷盟国对他失去信心。
这时候伊尹奉王命潜入夏都,乔装打扮秘密会见夏王姒癸的妃子妹喜探听虚实。妹喜告诉他说夏王做了个梦,梦见两日相斗,西方日胜,东方日不胜。伊尹立刻返回商朝告诉商侯成汤:灭夏的时机已经成熟,可以对夏宣战了。成汤问何以知之,伊尹便把妺喜的梦告诉了他,这是天神的暗示:据西方者胜,据东方者败,我军如果从东部进攻,必败无疑。所以必须“令师从东方出于国,西以进”,就是把军队悄悄迂回到夏都以西,然后从西部攻城,这叫反客为主,必然大获全胜。
成汤大喜,悄悄调动部队沿僻静小路赶往夏都以西,然后便以夏王无道为借口,停止向夏王朝纳贡,并发出檄文,公开叛夏。
夏王姒癸果然大怒,派人征调九夷军伐商。但九夷人已经知道夏王朝失去民心,不肯出兵相助。夏王姒癸只好作罢。
成汤得知九夷诸国不肯出兵助夏,立刻调兵遣将,命伊尹率兵攻打夏王朝实力最大的同盟国昆吾。
商汤十五年(戊寅,前1603)春,商汤的军队攻破昆吾都城,杀死夏伯等宗族大臣,并将族人逮捕为奴,昆吾国灭亡。这年秋天,夏朝的太史令终古见夏王朝大势已去,便窃取了夏王朝的一些重要机密,带领家人暗中投奔了商汤,他向成汤提供了夏王朝的许多重要情报。成汤大喜,便接纳终古为商朝大臣。
商汤十六年(己卯,前1602)春,成汤亲率商军攻打夏都斟寻(今河南偃师市东北)。
夏王姒癸疏于防范,军队一触即溃,首战就被商汤军队击败。他见大局不妙,便率族人弃城逃往夏王朝的旧都老邱(今河南开封市开封县陈留镇北)。夏王姒癸虽然已经年老,但毕竟是位勇猛善战很有指挥才能的人。他在老邱很快组织了一支精锐部队,准备与夏军做一次决战。
商汤十七年(庚辰,前1601),殷商军队攻占夏都斟寻后继续调兵遣将,出动了兵车七十辆,甲士六千人,东进向夏王旧都老邱发起了总攻。
夏王姒癸也做好了迎战准备,组织了近万人的兵力列阵于黄河北岸七里营一带,要与成汤一决高下。但是殷商军队在伊尹的指挥下,由成汤亲率主力部队东进正面进攻,伊尹自己则率领一部分精英部队悄悄前往黄河以北联合北地殷人兵出韦邑(今河南安阳市滑县),从东北部向夏都老邱进攻,形成两面夹击的战局,迫使姒癸不得不分兵御敌,从而打乱了夏军的作战部署。
夏、商双方的主力部队在鸣条(今河南新乡市封丘县)展开最后的决战。
夏军失去了诸侯国的援助,在殷商军队的强势攻击下孤军作战,最终兵败。夏王姒癸带着部分大臣和家人弃城逃往三朡(zōng,诸侯国,今山东菏泽市成武县汶上集镇丁古刘庄)。成汤旋即率军攻打三朡,夏军又败。姒癸率众突围后逃往成国(今山东泰安市宁阳县东北)。成国也是夏王朝属国,国君对夏王朝很忠心。姒癸命令身边的大将推移和大牺率军保护城池。殷商军队很快追到,与夏军展开恶战,最终活捉了夏朝大将推移和大牺,灭掉了成国。
姒癸仍不投降,率数十位忠心护主的勇士杀出一条血路逃往焦门(今山东泰安市宁阳县附近)。在焦门又遭到了殷商大军的围攻。夏王姒癸虽然勇猛善战,但毕竟已经是七十多岁的人,后来终因寡不敌众而被俘。商汤本想把他及其全家处死,后来采纳了伊尹“以仁德治国”的建议,便没有把夏王处死,而是将他流放于南巢(今安徽巢湖市一带)。