441年(宋元嘉十八年魏太平真君二年),宋与魏国因仇池之争爆发南北战争。
氐人仇池杨氏多年居于河西,422年(宋永初三年),宋武帝封仇池公杨盛为武都王。425年(宋元嘉二年),杨盛死,盛子杨玄立,宋又以杨玄为北秦州刺史、武都王。429年(元嘉六年),杨玄死,其子保宗立,其弟弟、野心勃勃的杨难当废侄自立为武都王。后虽宋也封杨难当为武都王,但杨难当已怀二心。432年(宋元嘉几年),帮助蜀地流民许穆之起事不成,出兵占梁州,占据汉中。并在433年接受了魏的封号,称南秦王。宋军后举兵收复了汉中,杨难当向宋谢罪,但此后一直在伺机复仇。
441年,杨难当南侵蜀地。刘义隆派梁、秦二州刺史刘真道、龙骧将军裴方明率大军讨伐杨难当。442年宋军占领了仇池。杨难当携家眷逃奔北魏,宋以辅国司马祟之镇仇池。
拓跋焘以替杨难当报仇为名,大举南侵。派安西将军古弼、仇池降将杨保宗率军从祁山南下,征西将军皮豹子、晋宗室司马楚之众出散关西下,两路在仇池会合,组成南侵主力。另有两路兵力即晋宗室司马文思趋襄阳、晋故将刁雍一趋文陵,来牵制南宋的一部分兵力。
443年(宋元嘉二一卜年),宋、魏两军在浊水发生战斗,宋军主将胡崇之兵败被俘,仇池失守。仇池为杨氏故地,杨保宗等进驻仇池,立即叛魏称王,未成被杀;不久杨保宗的弟弟杨文德被故将奉为主。宋封文德为武都王。
444年(宋元嘉二十一年),魏又遣使访宋,与宋修和,南北战争告一段落。