魏咸熙元年(264年),南中都督
霍弋表奏
爨谷为交趾太守,又命牙门将军建宁人毛炅、
董元、
孟干、
孟通、
爨熊、
李松、
王素等人皆率部曲跟随爨谷前往交趾支援反抗东吴的
吕兴。援军尚未到达,吕兴已经被手下功曹李统杀害。(《晋书》则称毛炅是在西晋时期与杨稷一同入交州。)
后来交趾太守爨谷、
马融相继去世,犍为人
杨稷接任太守之位,加绥远将军;于是诸位牙门将军皆被升为杂号将军,并封侯。
晋泰始四年(268年)东吴派
顾容、交州刺史
刘俊、前部督
修则领兵三攻杨稷,皆为杨稷击败,于是郁林、九真两郡归附晋朝。
泰始七年(271年)毛炅与将军
孟岳奉命抵御吴军进攻,两军在封溪展开大战。晋军因寡不敌众而大败,毛炅等人仅以身免。
封溪战败后,毛炅等人退回交趾固守,兵力不过千人,加上初附之人共有四千多人,男女一万多口。陶璜率军围城,又切断南中地区增援的道路。当时霍弋已死,救援无法抵达,城中粮食短缺,供给不足,即使节省也无济于事。
当初,霍弋与杨稷、毛炅发誓说:“如果敌军围城,城池未过百日而投降,则守将家属尽皆诛杀;如果城池超过百日而沦陷,则是我这个刺史的责任。”杨稷等人守城未满百日,粮食已尽,便乞求投降。陶璜不许,向城中送粮令其继续坚守,吴将一同劝谏陶璜收回命令,陶璜说道:“霍弋已死,晋国必定不能救援杨稷等人了。可等待其约定期限到达,然后接受投降,使他们投降无罪,我们受降有义,如此内能教诲百姓,外能安抚邻国,不也很可行吗?”等到期限已过而城中粮食殆尽后,陶璜便同意受降。(一说交趾是被吴军攻破,见“相关争议”)
当初,修则为毛炅所杀,其子
修允跟随陶璜南征,交趾投降后,修允向陶璜请求复仇,陶璜不许。后来毛炅密谋袭击陶璜,事情泄露,于是陶璜命人收捕毛炅,对他骂道:“晋贼!”毛炅厉声说道:“吴狗!谁才是贼?”修允借机报复,剖开毛炅的腹部,说:“庸奴,还能继续作贼吗?”毛炅依然骂道:“我志在斩杀你主孙皓,你父亲就是一条死狗罢了!”随即被修允杀害。(一说毛炅在城破后宁死不屈被杀,见“相关争议”)
晋帝
司马炎闻知毛炅身死之事,感到怜悯,于是下诏令其子袭爵,并封其三个儿子为关内侯。
《三国志》裴注《
汉晋春秋》及《
晋书》均称杨稷、毛炅困守交趾后因粮尽乞降,陶璜资助军粮,在百日期限到达后方才接受投降。
《华阳国志》则称交趾沦陷是因为广野将军
王约投降东吴,向城外支援攻城梯,使得吴军攻入城内,擒获杨稷。城破后,陶璜欲图赦免毛炅,而毛炅不为屈服,因此被杀。
宋
司马光《
资治通鉴考异》认为“吴主孙皓残暴猜忌,恐怕陶璜不敢向敌军资助粮食”,因此选择采纳《华阳国志》。
清代学者
何焯则认为“《华阳国志》是为了彰显蜀地壮士之多,应该以习凿齿《汉晋春秋》为准。”