白起率领秦军很快便对鄢城发起进攻,但这次白起率领的秦军,受到了楚军的猛烈反击,多次对鄢城的进攻都以失败告终。白起知道自己率领的这支秦军是孤军深入,不适宜于长久作战,如果鄢城久攻不下,秦军占领的邓地的楚人肯定会趁机作乱,到时候他所率领的秦军必会受到前后夹击,因此白起要想办法速战速决。
白起难以攻下鄢城,便亲自到鄢城附近勘察地形。经过勘察后,白起在距离鄢城百里的夷水高于鄢城,因此白起便有了水淹鄢城的计划。有了计划白起便开始实施,他将秦军分成两支队伍,一支队伍到夷水处建坝蓄水,别一支队伍则在夷水到鄢城间开凿水渠。
建坝修渠成功后,白起下令凿开蓄水坝,河水如山洪般倾泻而下,鄢城数米宽的城墙被水冲塌,河水灌入城中,鄢城中近十万军民被淹死,鄢城已无险可守,楚军大败而退,白起率领秦军攻占鄢城。
攻占鄢城后,白起并没有继续进攻近在咫尺的郢都,而是在鄢城进行休整,同时从秦国迁来大量的秦国民众和囚犯,开始在邓地和鄢城生活经营,将邓地和鄢城打造成秦军的后方,同时出兵进攻西陵(湖北宜昌市西),切断了郢都和巫郡的联系。
公元前277年,休整完毕的秦军在白起的率领下,对楚都城郢城发起进攻。这一次进攻对于白起来说轻而易举,因为有了鄢城之战的案例,楚国上下已经被白起吓得胆战心惊,根本不敢做出什么抵抗。
白起攻占楚国都城郢城后,为了从精神上击溃楚国民众,放火烧了楚国先王的陵墓夷陵(今湖北宜昌市夷陵区),然后向东继续进军,攻占了楚国竟陵(今湖北潜江市一带),至此白起才停止继续进军。
白起攻占楚都城郢城后,楚顷襄王逃亡到陈城(今河南淮阳县一带),才得以保住性命,史称“鄢郢之战”。
这一战秦国大胜,使得秦国占领了楚国长江以北的大部分领地,楚国的实力也因此一战而萎靡不振。白起也因这一战被秦昭襄王封为武安君。
在白起攻占郢城后,楚国的巫郡、黔中郡也完全被秦军隔开,成为了秦军的案俎之肉,白起和张若两人带兵攻占了巫郡和黔中郡,再次削弱楚国。
公元前276年,不甘心失败的楚顷襄王集结了十多万楚军,沿长江向西进军,争夺被秦国占领的城池十多座,用来重新构建抵抗秦国的防御战线,这也成了楚国这个诸侯国最后的倔强了。