司马衍平定匈奴:司马邺守住中国九成领土,受到各民族拥护,他遇难几个月后匈奴大部败亡,祖逖和司马裒收复黄河以南,靳准、路松多等屠各起义,司马睿的北伐取得关键胜利。司马睿末期和司马绍时期,晋朝因为内部矛盾北伐势头削弱,这时期晋朝的北部方镇与异族战争多些,北方灾害加重,异族不得不对抗晋朝北方军队或兼并其他异族,争夺人口土地和牲畜粮食,更多是利用晋朝中央和主力在南方无暇北伐,扩充在北方的地盘和力量。司马衍继位后,继承父亲临终的“大仇未雪,百姓涂炭”的遗嘱,积极准备北伐,羯族攻寿春再次被苏峻、韩晃击退,匈奴和凉州晋军、仇池杨氏交战。此时匈奴仅残部另建政权,是族子僭位,国号、社稷都改了,两个匈奴政权都是仅十年多,匈奴见羯族被晋军击败,准备乘机攻灭羯族夺回旧都等地,双方在洛阳、上郡等地激战。晋朝为争夺北伐领导权没能利用匈奴和羯族交战及时北伐,内乱结束后,年仅九岁的司马衍就几乎是亲政了,重大事务陶侃等都要向他启奏,陶侃和温峤两位统帅都出镇准备北伐,但是北方形势却急剧发展,石勒在晋人帮助下,在洛阳附近打败俘虏匈奴僭主,关中的晋人蒋英和辛恕发动起义,帅领数十万晋军攻占长安,从当时晋军行动看,因为路途远和被匈奴隔绝,蒋英和辛恕只能联络周边的晋军和羯族配合作战,没法和江南的中央政府联络,但是已经形成了攻灭匈奴的统一战线,在凉州的晋军在张骏指挥下,向秦州和陇西匈奴进攻,收复秦州和逼近天水上邽,蒋英和辛恕攻占长安后,汇合羯族军,向匈奴残部发起最后的攻击,羯族攻灭匈奴最后的据点,对残存的匈奴进行了屠杀,匈奴政权覆没。这场战争表面似乎司马衍和晋朝中央没发挥影响,实际仍是晋朝联合各民族共同平定了匈奴。