鄢城是軍事重鎮,離都城郢很近,這裡如果失守了,都城就危在旦夕了,所以楚頃襄王聚集了重兵把守在鄢城。麵對楚軍頑強的防守,鄢城久攻不克。強攻不行,白起準備另辟蹊徑。鄢城旁邊有條大河叫夷水,從西向東南流,白起讓人在鄢城西部一百裡左右的地方修築水壩攔住夷水,等蓄得差不多了,開閘放水。當時正好是雨季,水量很大,大水漫進了鄢城,淹死士兵和百姓數十萬,城牆都被泡破了,鄢城就此被攻破。
白起攻破鄢城後,繼續東進,奪取了西陵(今湖北宜昌西),至此完全占據了長江上遊的戰略地位,也切斷了楚都郢城與楚國西麵領地的聯係。秦昭襄王看白起對楚國的攻勢這麼順利,便組織了澠池會盟和趙國停戰,以全力支持白起攻打楚國。
公元前278年,經過一年的休整,白起再度動身,率領大軍直逼郢城。白起一路上勢如破竹,郢城很快淪陷,白起還來了個殺人誅心,一把火燒了楚國先王墳墓所在的夷陵今(湖北省宜昌市夷陵區)。國都被占,楚頃襄王灰溜溜得向東逃走,被迫遷都到陳(今河南省淮陽縣)。
公元前277年,秦昭襄王又讓白起和蜀地郡守張若攻占了楚國西部的巫郡和黔中郡。楚頃襄王之前派將軍莊蹻(qiāo,楚莊王的後代)順著長江而上,占領了巴郡和黔中郡以西的大片地盤,一直到滇池(今雲南省昆明一帶)。現在巫郡和黔中郡淪陷了,斷了莊蹻回楚國的路,莊蹻索性就地稱王,建立了滇國,與楚國脫離。
公元前276年,楚頃襄王收集了十餘萬的東部士兵,奪回了長江領域的十五座城,和秦國開始了拉鋸戰。雖然收回了點地盤,但經過這係列戰役後,楚國被打得半死不活,再也沒有能力和秦國叫板了。白起因為屢次戰功被封為武安君,成為了威震天下的戰神。