长安之所以会生出这些乱子,不光有重臣过世,职位交接、更替导致的混乱,还因为才攻取不到半年的梁益之地发生反叛。由于就近从长安出兵支援蜀地,包括宿卫在内的中军将士,人事任命和各军调动都十分频繁。
前秦建元十年(374年),李威在三月病逝,五月就传来蜀人张育、杨光起兵击秦的消息,不仅聚众逾二万,还向东晋遣使称藩请兵。
而在前秦北部的朔方一带,去年曾遣使入贡的代王拓跋什翼犍再次攻打女婿,铁弗部首领刘卫辰不敌南逃。秦、代暂且相安无事,因为接替梁平老镇守朔方的镇军将军邓羌此时已被召还长安,作为主帅领兵五万入蜀平乱。
此前因周仲孙弃守,奉桓冲之命率军救援的毛穆之、毛球父子未至而梁益已失,加上军粮不济只得退屯巴东郡,作为反击前秦的桥头堡。起兵反秦的张育聚众反叛后不久,就自称蜀王更改年号,与巴獠酋帅张重、尹万等人率众五万余进围成都。
东晋方面这一次是难得的反应迅速,荆州方面曾奉桓豁之命,在前秦攻取梁、益二州时救援梓潼的江夏相竺瑶被委以益州刺史,与桓豁庶长子、东晋猛将、威远将军桓石虔引军三万攻打垫江。
前秦方面,攻取梁、益二州之后,率部驻屯在垫江留守的宁州刺史姚苌不敌败走,退守至广汉郡东南的五城县。
可叛军内部,由于张育与张重等人争夺大权,发生内讧相互举兵攻打,直到七月也没能取得任何进展。而邓羌的平乱大军已经赶到,与镇守成都的杨安取得联络,内外配合大败叛军,张育只好同杨光率残部退守绵竹。
紧接着秦军分兵,邓羌率大部前往支援姚苌,八月在涪西迎击晋军并取胜,竺瑶、桓石虔只得回屯巴东。
杨安则率成都原有兵力,以及邓羌留下的援军一部,清剿、追击残余的叛军,九月在成都以南击败张重、尹万,斩首二万三千余级,张重战死。
随后,回军的邓羌又在绵竹阵斩张育、杨光,蜀地乱事基本平定,益州重新被前秦掌握。
而在长安,灭前燕后迁徙关中的鲜卑人此前本就没能得到妥善安置,又因为突然发生的战事,攻占梁益后前秦本用来安抚的资源偏斜向邓羌的平乱大军,天气转凉后西迁的鲜卑人与关中各族冲突程度加重。