司马炎称帝后,改国号为晋,改元泰始,都洛阳。此时,蜀已为魏灭、晋又代替了魏,天下形势已由三国鼎立变成了晋与吴的南北对峙。
司马炎刚刚登上皇位,便想着举兵伐吴,一统天下,无奈晋国缺少一支强大的水军,灭吴之举只能暂停,司马炎一面派使臣与吴讲和,作缓兵之计,一面又抓紧时间,开始作进攻吴国的军事准备。
公元269年,晋武帝以羊祜都督荆州诸军事,镇守襄阳;王濬都督青州诸军事,镇临淄;司马伷都督徐州诸军事,镇下邳,以这些地区作为进军的基地。
公元272年,司马炎以王濬为益州刺史,密命他制造大船,训练水军,一支强大的水军在长江上游逐渐建立起来了。
正当晋朝国力日盛,积极准备平吴的时候,江东的孙吴却是每况愈下。早在孙权晚年,由于赋役苛重,吴国人民的不满和反抗已有所发展,社会矛盾加剧。晚年的孙权性多猜疑,搞得朝臣人不自安。孙权死后,围绕继位和权力问题,引发了一连串的宫廷内争和帝位更迭,进一步加剧了吴国的混乱。
公元264年,孙权之孙乌程侯孙皓被迎立为帝后,情况更加不可收拾。孙皓昏庸无道,即位后尽情享乐,好酒色,兴土木,搞得吴国“国无一年之储,家无经月之畜”,人民揭竿而起,朝臣离心离德。孙皓对西晋的威胁,毫无戒心,有时也派兵攻晋,但多因草率而无功。他迷信长江天险可保平安,从未认真在战备上下功夫。
吴国的衰落,孙皓的昏庸,为晋的顺利灭吴,提供了难得的机会。
公元279年,王濬、杜预(此时羊祜已死)以吴主孙皓“荒淫凶虐”,上书建议司马炎“宜速征伐”,举兵平吴。司马炎即于这年十一月开始了平吴的大进军。
晋军基本上按羊祜生前制定的作战计划,分六路出击:镇军将军、琅玡王司马伷自驻地下邳向涂中(今安徽滁河流域),安东将军王浑出江西,建威将军王戎向武昌方向进攻,平南将军胡奋出击夏口(属今湖北武汉市),镇南大将军杜预自驻地襄阳进军江陵(今湖北江陵),龙骧将军王濬、广武将军唐彬率巴蜀之卒顺江流而下。晋军约20余万,以太尉贾充为大都督总领众军。晋军分路出击,意在迅速切断吴军联系,各个击破,其中西面晋军主攻,东面晋军牵制吴军主力,最后夺取吴都建业。
公元279年十二月,王濬、唐彬率军7万兵沿江而下。公元280年2月克丹杨(今湖北秭归东),进逼西陵峡。吴军于此设置铁锁横江,又作铁锥暗置江中,以为以此即可阻止晋军前进,竟不派兵防守。王濬早已预作大筏数十个,缚草为人,立于筏上,使水性好的士卒以筏先行,筏遇铁锥,锥即着筏而去,又用大火烧融铁锁。晋军顺利排除了障碍,一路势如破竹,攻克西陵,继克夷道(今湖北宜都)、乐乡(今湖北松滋东北,长江南岸)。
与此同时,杜预率领的晋军,几乎兵不血刃,夺取了江陵,所到之处,大多不战而胜。
随即司马炎又命王濬为都督益梁二州诸军事,要他和唐彬率军继续东下,扫除巴丘(今湖南岳阳)。同时命杜预南下镇抚零陵(今湖南零陵)、桂阳(今湖南郴县)、衡阳(今湖南湘潭西)。于时王濬遵命即克夏口,与王戎联军夺取武昌,随后又“泛舟东下,所在皆平”。至此,晋军主力已完全控制了长江上游地区。
至于东面,王浑率晋军已抵横江(今安徽和县东南)一带,准备渡江进逼建业。吴主孙皓慌乱异常,急令丞相张悌率丹阳太守沈莹、护军孙震等率兵3万,渡江迎击。结果晋军大胜,临阵斩杀张悌、沈莹、孙震等人。王浑率军逼近江岸,部将建议他乘胜直捣建业。但王浑以司马炎只命他守江北,拒纳建议,停军江北,等待王濬。这时琅玡王司马伷的晋军也进抵长江,威胁建业。
三月,王濬军东下抵达三山(在今江苏南京市西南)。吴主孙皓遣张象率舟军万人抵御,但吴军毫无斗志,“望旗而降”。孙皓企图再凑2万兵众抵抗,这些士众却于出发前夜,即尽逃亡。至此,吴国已无兵可守。各路晋军兵临建业。孙皓用大臣薛莹、胡冲计,分别遣使奉书于王濬、司马伷、王浑处求降,企图挑拨离间。按司马炎原先的规定,这时的王濬晋军应由王浑节度,而王浑屯兵不进,又以共同议事的名义,也要王濬停止进军。但王濬不顾王浑阻拦,于三月十五日以戎卒8万,方舟百里,鼓噪而进建业。吴主孙皓出降于王濬军前,吴亡,晋统一全国。