公元279年,他力排众议,发令讨伐东吴。贾充等人又拼命反对,晋武帝大怒,迫使“充免冠谢罪”。由于贾充位及三公,影响很大,晋武帝为了争取保守派一同伐吴,便委任贾充为讨吴诸军的元帅。谁知贾充“自言老衰,不堪元帅之任”,拒绝受命,以此施加压力。晋武帝这次并未发怒,而是很开明地说:“君若不行,吾便自出。”就是说自己要亲自出任元帅。贾充见状,只好领命,出镇襄阳。战争进行到第二年春天,晋军攻下武昌,但吴军主力并未受到重挫,且春水上涨,晋军中又流行疾病,贾充上表请求撤兵,而张华则坚持继续进军,贾充恨得咬牙切齿,要“腰斩张华”,“以谢天下”。保守派另一要员荀彧也跟着奏请治罪张华。在保守派的强大压力面前,晋武帝毫不推卸责任,明确回答“此是吾意,华但与吾同耳”,拒绝退兵。
晋武帝为了完成灭吴大业,在战略上做了充分准备。早在公元270年,他就派羊祜坐守军事重镇襄阳,着手灭吴的准备工作。羊祜坐镇襄阳后,减轻赋税,安定民心。襄阳与东吴重镇石城相距最近,晋军采取了“以善取胜”的策略,向吴军大施恩惠。由于孙皓挥霍无度,部队士兵常常领不到军饷,连饭也吃不饱。羊祜命人向吴军送酒送肉,瓦解吴军。这样,不时有吴军前来投降,羊祜下令说:“吴军来要欢迎,走要欢送。”有一次,吴将邓香被晋军抓到,羊祜部下坚持要杀掉,羊祜不但不杀,而且还亲自为其松绑,把他送了回去。有时,吴军狩猎打伤的野兽死到了晋军领地,晋军也把这些野兽送到吴军帐内。正是由于这样的“厚”爱,东吴将领们的心一步步趋向晋军。
晋武帝在襄阳一边命羊祜对吴军以仁德施加影响的同时,一边在长江的上游益州加强训练水军,建造战船。据说,当时造的船有的大可容纳两千多人,上面可以驰马来往。经过长达七年时间的充分准备,公元279年,晋武帝下令开始向吴军展开大规模的进攻。为了克服长江天险,迅速夺取胜利,晋武帝部署五路兵马,沿长江北岸,向吴军齐头进发。另有第六路兵马,由巴东、益州出发,沿江东下,直捣吴军都城建业。长江上游的东吴守军,在巫峡80里长的湍急水流中,钉下了无数个锋利无比的、长十余丈的铁锥,在江面狭窄的地方,横拉着很多粗大的铁链,以封锁江面。晋军先用大竹排放入长江,奔腾的江水漂浮着巨大的竹排猛冲直下,埋在江里的铁锥被竹排拔离江底,完全失去了作用。对待封锁江面的铁链,晋军在船上载了无数用麻油浇灌的火炬,每根有十多丈长,遇到铁链,点燃火炬,熊熊烈火把铁链烧熔断裂。就这样,东吴长江的防守设施被一个个排除了。
晋武帝在部署六路兵马进攻吴军时,为了分散、吸引守卫建业的吴军兵力,先派王浑率一路晋军,由北向南,直取建业。孙皓不知是计,忙命丞相张悌统率主力渡江北上,迎击王浑,结果沿江东下的晋军乘机攻占了建业。晋武帝后来在评价这一战略时说:“令贼孙皓拼死自卫,不得分兵上赴,以成西军之功。”三百多年后,隋文帝杨坚兵分八路,渡江灭陈,也是借鉴了晋武帝这套作战方针。
由于晋武帝准备充分,时机恰当,战略正确,前后仅用了四个多月,便夺取了灭吴战争的全部胜利。唐代大诗人刘禹锡在追怀这场战争的情景时写道:“王潜楼船下益州,金陵王气黯然收。千寻铁锁沉江底,一片降幡出石头。”东吴从孙权立国开始,传了四主,共57年而亡。
从此,东吴的全部郡、州、县,正式并入晋国版图。三国鼎立的局面完全结束了。晋武帝司马炎终于统一了全国,结束了长达近百年的分裂局面。