元嘉北伐
元嘉北伐是指南朝宋於元嘉年間主動進攻北魏一系列的征戰，共計有三次，分別於元嘉七年（430年）、元嘉二十七年（450年）及元嘉二十九年（452年）。三次戰爭中宋文帝雖留守建康，各次派不同將領出征，但都會傳詔傳授戰略。三次北伐主要目標及戰場均為收復南朝宋的河南失土，戰事耗費巨大的兵力及物資，但結果全遭失敗。尤其第二次北伐對江北各地造成極大破壞，江南人民也在恐懼震盪中，久久不能平復。宋文帝去世後，宋更陷入內鬥混亂中，北魏漸取得軍事上的優勢，逐步奪取宋的北方領土。
南朝宋永初三年（422年），宋武帝劉裕去世，宋少帝繼位，北魏乘劉裕新死而揮軍南攻，滑臺在魏將奚斤猛攻下失守。次年，戰事持續，司州刺史毛德祖堅守虎牢，魏軍轉攻而攻下洛陽，河南郡失陷；另叔孫建與刁雍則攻青州，但青州刺史竺夔據東陽城（今山東青州市）不下，因檀道濟等南朝宋援軍將至而撤圍，轉而增援圍攻虎牢的魏軍，終毛德祖力戰被俘，司州失陷。元嘉元年（424年），輔政的徐羨之等人廢殺廬陵王劉義真及宋少帝，改立宜都王劉義隆為帝，即宋文帝。宋文帝即位後即想收復之前被北魏攻下的河南地，在元嘉三年（426年）誅殺徐羨之等，消滅了權臣勢力後，就意欲北伐，曾經對北魏使者聲索失土，威脅要派兵進攻。元嘉六年（429年）北魏太武帝意欲北攻柔然，魏亦有人顧慮南朝會籍此北伐，但在崔浩支持及太武帝意志堅決下還是成行，終大破柔然，柔然紇升蓋可汗憤怨而死，防止了南北夾擊的風險。
元嘉七年三月戊子（430年4月10日），宋文帝命右將軍到彥之領王仲德、竺靈秀率五萬水軍入黃河，另派驍騎將軍段宏率八千兵攻虎牢，豫州刺史劉德武率一萬兵跟隨，還任命長沙王劉義欣監征討諸軍事，率三萬兵進駐彭城支援各軍。發兵前又命殿中將軍田奇出使魏國，向太武帝說：“河南地區昔日是宋的國土，但被你們侵奪，現在正當修復舊土，無關你們河北土地。”但太武帝大怒：“我出生後頭髮還未乾就知河南是我們的國土。這怎麼可以！若果真的攻來，現在就暫時撤戍退避，等到冬天河面結冰，我會再度攻取。”
面對宋軍出發的消息，南方邊將向太武帝請兵三萬欲搶先攻擊，並建議盡誅邊境河北流民，免得他們成為宋軍嚮導，挫宋軍士氣。但太武帝採信崔浩認為那時夏天暑熱多水，滋長草木和疫病皆不利於行軍，應當守城至秋冬才攻擊的意見，但沒獲得允許。接著南方邊將又以兵少而請派幽州以南精兵增援，並在漳水造船以應敵，朝臣亦同意，建議派遣五千騎增援，並讓司馬楚之、魯軌、韓延之等到南方招納民眾。崔浩又反對，認為出動幽州南精兵會令南朝害怕北魏對其作出滅國戰爭，於是激起他們以強兵應敵，反會令魏軍更難守住，甚至會令伺機者有機會作亂；又指司馬楚之等人不能成大事，更以天象表示此戰會對南方不利。不過，太武帝難敵眾臣，還是派了司馬楚之到潁川，又下詔冀、定、相三州造三千艘船，命幽州以南精兵在黃河禦敵。其時宋文帝下令各軍若北魏軍隊有所行動則搶先一步進兵黃河，但若北魏沒有行動則暫時停駐彭城，北魏調兵防禦的行動即加速了宋軍進兵步伐。
帶領著水軍的到彥之經淮河入泗水，然而因泗水水淺，到彥之每日只能走十里，由四月走到七月才到達須昌，並進入黃河。因應河南四鎮兵力少，太武帝命守城諸軍都撤回河北，於是碻磝、滑臺、虎牢及洛陽四鎮守軍於當月相繼撤走，到彥之遂輕易收復四鎮，留朱脩之守滑臺，司州刺史尹沖守虎牢，杜驥守洛陽金鏞城。當時軍中對於成功收復失土都相當興奮，然而王仲德就一直擔憂冬季魏軍再來。到彥之及後派姚聳夫渡河進攻冶坂，為魏將安頡所敗，殺五千餘人，不少人更在黃河溺死。北魏又派長孫道生會同在黃河防禦的丹陽王拓跋大毗一起抵抗到彥之大軍，又派外戚杜超進鎮鄴城，節度諸軍。
十月，到彥之及王仲德沿著黃河布防，並退守東平須昌。十月乙亥日（11月23日），安頡經委粟津南渡黃河，進攻金鏞城。金鏞守將杜驥眼見金鏞城殘破無糧，根本無法守住，然而又怕被指棄城逃跑，於是借故要前來打撈沉進洛水鍾虞的姚聳夫參與守城。姚聳夫看到金鏞城狀態後亦知無法據守，於是率眾離去，杜驥亦因而南走。棄守金鏞城後洛陽不久便被安頡攻下，五千多人陣亡。安頡接著與陸俟轉攻虎牢，虎牢亦於十月辛巳日（11月29日）失守，司州刺史尹沖跳下城樓殉國，穎川太守崔模則降魏。
另一戰埸，到彥之見魏軍在七女津集結，派了裨將王蟠龍搶奪其船艦，防其南渡，卻被杜超擊殺。及至到彥之知洛陽及虎牢皆已失陷，魏將長孫道生及叔孫建也率兵渡過黃河了，即想率兵撤退。殿中將軍垣護之寫信勸諫，認為青州富足並且漕運暢通，而且主力並無損耗，值得守備，勸到彥之增援滑臺，不要退兵。時到彥之眼疾發作，軍中又有疫病，不但不納垣護之所諫，更想立即焚毀船艦，循陸路撤走，王仲德以捨舟步走會令士兵潰散為由勸到彥之退至濟水才再決定，遂令到彥之率大軍循濟水至歷城才焚船步走，退回彭城。竺靈秀也棄守須昌，退回湖陸。
到彥之退軍，北魏大軍於是進而侵襲青、兗二州，守歷城的濟南太守蕭承之被魏軍攻擊，承之手中只有數百人，故意偃旗息鼓，打開城門，讓魏軍以為有伏兵而退走。退守湖陸的竺靈秀被叔孫建擊敗，死了五千多人。滑臺亦被安頡、司馬楚之等圍攻。十一月壬辰日（12月10日），宋文帝下詔以檀道濟為都督征討諸軍事，率眾再伐北魏。
翌年，魏軍繼續圍攻滑臺，檀道濟在正月丙申日（431年2月12日）循清水進軍青州以救援滑臺。魏將叔孫建及長孫道生出兵迎擊，道濟於壽張擊敗了叔孫建，又在高梁亭斬魏濟州刺史悉煩庫結，並於二月進至濟水，前後二十多日和魏軍發生三十多場戰事，道濟大多都取勝，可是在進軍至歷城時被叔孫建焚毀糧草，檀道濟因缺糧而無法前進，無力救援滑臺。檀道濟援軍不至，令魏軍得以專心圍攻滑臺，太武帝更派王慧龍增援魏軍，相反滑臺守軍被圍數月糧盡，只得捕食老鼠充飢，但滑臺還是於二月辛酉日（3月9日）被魏軍攻下，守將朱脩之、東郡太守申謨等都被俘。
救援失敗的檀道濟因糧盡，從歷城南返，惟有士兵逃亡到魏，並將道濟軍中乏糧的事實告魏軍，讓魏軍追擊道濟。面對魏軍進攻，道濟軍中人心惶惶，快要潰敗，道濟遂於夜間唱籌量沙，用沙土裝作米糧點數並塞滿袋子，再用僅餘的米糧堆在最表面，形成軍中糧食仍充足的假象，成功騙倒前來追擊的魏軍，放棄行動並殺害那個告密的逃兵。時道濟兵少，又故意命全軍披甲，自己白衣坐乘輿，帶著兵徐徐離開魏軍範圍，魏軍因怕道濟設下伏兵，都不敢進逼，道濟得以全軍而返。
青州刺史蕭思話知檀道濟也南退了，為了避險安身，不聽蕭承之的勸諫棄治所東陽出走平昌，不過最後魏軍根本沒到東陽城，只是囤積在東陽的物資全都被平民焚毀了。
此戰中宋軍在河南各戍得而復失，無功而返。到彥之軍中大量的軍需品在撤軍時全都丟棄，戰後南朝宋的兵器府庫為之一空。後來宋文帝在從北魏來降的人面前問尚書庫部郎顧琛府庫中有多少兵器，但立即想起到彥之北伐中的巨額滑耗，立即後悔問了這個問題。聽到顧琛答還有給十萬人的用量，才高興起來。戰役結束後，宋文帝亦下詔請上下奉行儉約，以補軍事損耗。
檀道濟於此役雖然因糧草被叔孫建所燒而令救援滑臺行動失敗，但他卻能讓軍隊全軍而返，威名大振，甚至北魏人都相當怕他，更以他的圖畫驅鬼。檀道濟在宋更是開國元勳，身邊親將皆身經百戰，連一眾兒子都甚有才氣，故檀道濟的名望令朝廷都猜忌他，甚至有當時人拿他和發動政變奪取政權的司馬懿相提並論。最終讓檀道濟在元嘉十三年被執政彭城王劉義康收捕誅殺。
率領夏國殘餘勢力的夏帝赫連定見宋軍北伐，亦在430年趁機出兵攻魏，派兵進攻鄜城，並派使者向宋求和，並議協同滅魏，約定事成後以恆山為界。然而隨到彥之退軍，宋亦沒有支援赫連定的行動，太武帝率領的大軍遂大破赫連定，讓其敗走上邽。次年魏再攻夏，擒赫連定，滅夏。
出身清河崔氏的崔浩在此戰中獨議不宜過早對宋軍作出反應，雖太武帝逼於群臣壓力而沒全聽從。戰事發生時又力主太武帝率兵討伐擾襲關右的赫連定，終獲取勝利，並於次年滅亡夏國。事後，太武帝仍對崔浩大加讚賞，擢升其為司徒，隨後亦對其更加器重，北魏統一北方時亦多詢問並聽取其意見，其得寵信更促成日後太武帝滅佛，亦圖「齊整人倫、分明姓族」，終因國史之獄被誅。
第一次北伐後，宋魏兩國在約二十年時間並無大戰事，互通使節，故宋國內大致安定，且宋文帝掌政後一直推動農桑，興文教，撫恤人民，達至治世，國力上升，史稱元嘉之治。不過宋文帝並沒有放棄北伐，既與北方諸國聯結抗魏，又於元嘉二十二年（445年）派了武陵王劉駿出鎮襄陽，討平群蠻以免後顧；又將南豫州併入豫州。而北方北魏在擊退第一次北伐後繼續對北方用兵，先後滅夏、北涼及北燕，統一北方，與南朝宋對峙。隨後北魏發生了蓋吳起義，蓋吳於關中叛亂並附宋，宋亦有招誘關中人民，又命雍梁二州屯兵州境，為蓋吳聲援，然沒有實質上協助蓋吳，終蓋吳為魏所滅。魏更屢征北方柔然，並在449年擊敗柔然，逼柔然可汗遠走，更獲得柔然大量輜重、牲畜及人民，從此柔然漸漸衰弱，大大削弱了對魏威脅。
早於元嘉二十三年（446年），魏因聽信宋青州刺史杜驥要歸降的假消息而出兵迎接，發兵南下；杜驥當然沒北歸意圖，與宋北方諸鎮抵抗，魏軍於是殺掠青兗冀三州後北歸。元嘉二十七年（450年）二月，北魏又再攻宋，太武帝親率大軍抄掠淮西六郡，並進攻懸瓠，守將陳憲以不足千人拒守，但在宋軍頑強抵抗下，魏軍攻了四十二日仍無法攻下，反倒臧質及劉康祖率領的救兵快到，只得退兵。雖然北魏在此戰沒甚麼戰果，只掠奪不少物資，但太武帝在給宋的書信中指責宋乘北魏蓋吳起義時招誘邊民，並輕視南朝，聲言宋文帝若求自保應割讓江北，否則北魏會主動進攻，更指文帝殺掉自己的良臣舊將，正是上天要助魏滅宋。王玄謨曾屢獻北伐策略，聽得宋文帝很心動，及至此時，宋文帝決心北伐，並得江湛及徐湛之支持，然而沈慶之以上一次北伐失敗，認為王玄謨根本及不上上一次領軍的到彥之及檀道濟，憂回還是會失敗。但文帝不以為然，反認為碻磝及滑臺二戍易得, 得後更可搖動洛陽、虎牢人心，並可待冬季魏國騎兵來攻時將之一網打盡，不聽沈慶之、太子劉劭及蕭思話等的反對聲音，還派江湛及徐湛之詰難一直反對的沈慶之。沈慶之於是說：「治理國家就好像治理家庭一樣，農耕之事就當問男奴，織品之事應當問婢女。陛下現在想進攻別國，卻和這些白面書生討論，事情怎會成功！」宋文帝聽後大笑，仍然堅持出兵北伐。
其宋軍兵力不足，朝廷下令在青、冀、徐、豫、兗及南兗六州實行三五發兵，又設厚賞廣徵擅長武藝的人參軍。同時又令王公、妃主、朝臣、地方首長以至富有民戶都捐獻錢財物資資助出兵，更命揚、南徐、南兗及江四州家財滿五十萬的富民和滿二十萬的僧尼借出四分之一財富作軍用，軍罷後即還。其時又減少各級官員俸祿及罷國子學，專心北伐。
元嘉二十七年七月庚午日（450年8月5日），宋文帝下詔以青冀二州刺史蕭斌為六萬北伐軍主帥，王玄謨率沈慶之及申坦為前鋒，率水軍入黃河，一併受督於蕭斌；另命臧質及王方回率軍直攻許、洛一帶，徐兗二州刺史劉駿及豫州刺史劉鑠都各率其兵進攻；南北秦梁三州刺史劉秀之率軍進攻關隴，並讓太尉劉義恭出鎮彭城節度各軍。雍州刺史劉誕亦派了柳元景、薛安都、龐季明，龐法起等人北攻關中，出兵弘農。而北魏眾臣聽聞宋軍北伐，曾請太武帝派兵救援黃河兩岸的穀物及棉花，但太武帝以未是時候為由拒絕，說要待冬天才作反擊。
東線宋軍兵向青州，王玄謨攻碻磝而崔猛攻樂安，魏濟州刺史王買得及青州刺史張淮之都棄州出逃，蕭斌及沈慶之留守碻磝，讓王玄謨進攻滑臺。玄謨初圍城時有人建議用點火的箭矢燒掉城中茅屋，但王玄謨怕這會損耗城破後獲得的物資而不做，不久城中人民就將茅屋都全部撤去了。其時人民經常送來穀物，但玄謨都不分配給全軍，而只供給親兵；更加營私利，一匹布要換八百個梨，如此種種都大失人心。同時，滑臺久攻不下，而太武帝則於九月辛卯日（10月25日）出兵救援滑臺，另出五萬州兵支援各地守軍。眾將知魏國援軍快到了，就請王玄謨發車為營對抗騎兵，但玄謨不肯，連月無法攻下滑臺加上魏軍將至，令宋軍士氣低落。而原先由王玄謨所派至滑臺西南一百二十里外石濟，率數百舸為前鋒的垣護之聽聞魏軍將至，快馬送書請王玄謨不計傷亡也要攻下滑臺，以作為防禦魏國援軍的據點，但玄謨又不許。
十月，太武帝在渡河前先派陸真與數人偷偷穿過宋軍包圍圈入滑臺城，安撫堅持了數月的守城軍民，接著就率六十萬大軍渡河，號稱百萬大軍，聲勢浩大，王玄謨根本無法抵抗，下令撤走，但遭魏軍追擊，死了萬多人，軍需品隨處散落，但最終還能逃回碻磝。因為王玄謨走得太倉卒，根本來不及通知垣護之，魏軍於是將俘獲的宋軍船艦都用三重鐵索連起來，用以封鎖河面，阻斷垣護之歸路，但垣護之藉河水湍急，順河而下，每到鐵索都用長柯斧弄斷它，魏軍無法阻擋，於是垣護之順利東下，全軍僅損失了一隻船。沈慶之成功阻止蕭斌處斬王玄謨以穩定軍心，及後又勸蕭斌放棄碻磝，免得魏軍避開碻磝東走，乘機攻擊其他地方，但最終蕭斌還是留王玄謨守碻磝，自己退返歷城，以申坦、垣護之守清口。
西軍方面，劉鑠又命胡盛之進攻汝南，梁坦攻長社，長社守將魯爽出走，幢主王陽兒擊敗魏豫州刺史拓跋僕蘭，僕蘭逃至虎牢，劉鑠於是派劉康祖進逼虎牢。另外龐季明得盧氏人民趙難接引，又說得不少士民支持，薛安都及柳元景等軍跟著進軍，成功於閏十月攻取了盧氏，殺魏置縣令李封，讓趙難任縣令，並作為嚮導繼續進攻。閏十月辛未日，龐法起至弘農，大舉進攻，守將李初古拔於南門抵抗，但北城樓的弘農人卻舉白旗，射沒有箭鏃的箭，龐法起等終攻下城池，由薛安都守弘農，接著攻向潼關。隨後，宋文帝命柳元景為弘農太守，柳元景遂派薛安都、尹顯祖等助龐季明攻陝城。不過，諸軍一時間無法攻下堅固的陝城，反倒魏洛州刺史張是連提就領兵來援，更命騎兵向宋軍衝鋒，宋軍難以抵擋。薛安都見狀大怒，將自己和馬的鎧甲都去掉，輕裝持矛，怒目單騎突擊魏軍，魏軍想射倒他但都打不中，於是連續數次突擊下殺傷了大量魏軍。黃昏時，宋將魯元保軍隊來到，魏援軍才撤後退。當夜，柳元景派往支援的柳元怙軍趕到，魏軍沒有發現，明天早上，薛安都在城西南方列陣，並與魏軍交戰，柳元怙軍在南門方向突然出現，向北方結陣，聲勢甚大，嚇得魏軍驚懼不巳，最終在薛安都奮戰下，到中午時魏軍潰敗，三千多人陣亡，張是連提戰死，不少人更在黃河遇溺死，二千多人投降。不久又攻下陝城。直攻潼關的龐法起遇到守城的婁須棄城逃走，順利佔據潼關，關中豪族都起兵響應，當地的胡人都來送款歸附。
正當西軍於關中大捷，由太武帝率領的部隊在東邊戰線分兵並進，大舉南攻，讓拓跋仁由洛陽出兵攻壽陽，長孫真攻馬頭郡，拓跋建攻鍾離，拓跋那由青州攻下邳，自率大軍攻鄒山。至十一月，太武帝至鄒山，俘宋魯郡太守崔邪利；拓跋建西至蕭城，擊敗宋將馬文恭。宋文帝以魏軍在東線深入，認為柳元景等軍不適宜獨自進兵，故都將他們召還，柳元景以薛安都斷後，安全撤還。
另拓跋仁攻取了懸瓠及項城，宋文帝怕魏軍威脅壽陽，遂命劉康祖撤返防禦，但康祖在尉武被拓跋仁所率八萬騎兵追上，康祖只得八千兵力，但他不聽胡盛之循山間險道避開騎兵襲擊，直奔壽陽的勸告，下令結車為營迎戰。康祖與眾將士奮戰一整日，殺了魏軍萬多人，戰意仍高，但卻被流矢射中頸部，墮馬戰死，眾軍因而潰散，全軍覆沒。拓跋仁接著又攻破尉武，俘守將王羅漢，並繼續進逼壽陽，燒掠馬頭及鍾離，壽陽守將劉鑠只能嬰城固守。後拓跋仁繞過壽陽與太武帝大軍會合。
馬文恭兵敗令魏軍佔領蕭城，並與其南方僅十多里的彭城守軍對峙，後太武帝兵臨彭城，一番交使求物後試圖攻城但失敗，遂繞過彭城南進。十二月，魏軍一直南攻，分遣魯秀攻廣陵、拓跋那攻山陽、拓跋仁出橫江，所過城壘都受嚴重破壞，各城邑守戍都望風奔潰，建康宣布戒嚴。時宋文帝派了臧質率萬人增援彭城，但到盱眙時卻得知太武帝已率魏軍渡過淮河。臧質於是在盱眙城南立營，別遣胡崇之、臧澄之及毛熙祚三人分別在東山及前浦立營，然而崇之等人皆被魏軍擊敗，臧質不敢救援，同日亦自潰，自得捨棄輜重和重裝備，率七百人逃入城內。幸盱眙太守沈璞自上任之初即努力積聚糧食及軍需，臧質入城後見物資充裕也安下心來，與沈璞共守城池。太武帝至盱眙後攻城失敗，便留韓元興領數千人留守盱眙外，繼續率兵南進。
十二月庚午日（451年2月1日），太武帝率軍進至瓜步，毀壞平民屋廬，又下令收割蘆葦造筏，聲言要渡江。建康城內人心惶惶，宋廷命丹楊郡內所有男丁都要入伍，王公以下子弟皆須服役，命劉遵考等分兵守住要津，于湖至蔡洲之間都有船艦巡弋，採石至暨陽沿江都有船艦及營壘，更派太子劉劭出鎮石頭城，總掌水軍，嚴陣以待。宋文帝更多次登上石頭城及莫府山察看江北魏軍動態，一次登上石頭城時更面有帶憂色的說：「如果檀道濟還在，胡馬怎能到這裏呀！」當時宋文帝還懸賞求太武帝及魏將相大臣的人頭，又招募人在空村中放置毒酒圖毒害搶掠物資的魏軍，但卻失敗。太武帝在瓜步只飲駱駝揹來的食水，不飲南方的水，又送駱駝名馬給宋文帝，請求和親，對宋文帝命田奇送去的食品都不作懷疑直接取食，又請嫁女給劉駿。不過最終和親都沒有成事。
元嘉二十八年正月初一（451年2月17日），太武帝在瓜步山上設宴，並請了當地人，宴罷後再經擄掠民戶及燒毀城邑，於次日北歸。時山陽太守蕭僧珍盡收人民入城，又將因道路不通而無法送往滑臺及盱眙的軍糧囤在山陽，更蓄水準備以水攻抵抗來犯的魏軍，北歸的魏軍遂捨山陽而攻盱眙。不過，盱眙自上年太武帝捨城南進後又強化了防禦，太武帝向臧質求酒反得溲水（尿），大怒之下下令設圍攻城，斷絕水陸通道，更製釘牀待俘獲臧質後對其施虐。魏軍嘗試用鉤車鉤毀城樓，但為守軍用大索所繫，數百人合力將車拉住，反讓鉤車無法後退；至夜，守軍又用木桶載士兵出城將鉤車的鉤子拆掉。明日，魏軍圖用衝車攻城，但城牆太堅固，每次撞擊都只掉下數升碎土。魏兵接著嘗試強行爬上城樓，卻錄得數以萬計的死傷，屍體堆得有城牆那麼高。魏軍攻了三十多日都無法攻下，因應疫症和宋軍追截的情報，太武帝於二月放棄攻城，燒掉攻城武器北撤。
魏軍走到彭城時劉義恭不敢攻擊，待魏軍遠去後才收到宋文帝追擊的命令，遂派檀和之進軍蕭城，不過魏軍已經得悉，將自廣陵擄掠獲的數萬人口盡數殺害後趕快撤退。另一直留守碻磝的王玄謨被劉義恭召還，卻為魏軍所敗，碻磝亦復歸魏。魏軍經過南兗、徐、兗、豫、青、冀六州州境時都大有殺戮，不過魏軍兵馬死傷亦過半，終於二月戊寅日（451年4月10日）北渡黃河。北伐結束。
北魏撤軍時對六州造成巨大破壞，《資治通鑑》言魏軍於當地「丁壯者即加斬截，嬰兒貫於槊上，盤舞以為戲。所過郡縣，赤地無餘，春燕歸，巢於林木。」又說:「自是邑里蕭條，元嘉之政衰矣。」亦讓流民司馬順則於戰爭結束後數月在梁鄒城起兵作亂。
魏將魯爽及魯秀皆是晉雍州刺史魯宗之孫，父祖因魯宗之與司馬休之聯手對抗劉裕進攻失敗而逃到北方。二人勇健卻因犯下罪行而被太武帝斥責，因擔憂被誅殺而圖謀南歸，最於魯爽在魏軍自瓜步退軍時以遷墳為名回到長社，乘機帶領部曲、親屬及隨行者南歸；魯秀則到壽陽奉書請降。
江湛及徐湛之一直支持宋文帝北伐，而太子劉劭則大力反對，至魏軍兵臨瓜步時，雙方矛盾更是激烈。宋文帝命眾臣討論與北魏和親之事，江湛出言反對但諸臣卻贊成，劉劭遂大怒，對江湛稱三位宗王正在險境，不應該隨便提出異議。散席時劉劭又命班劍隊及侍從推逼江湛，差點將他推倒。劉劭又上言稱這次北伐失敗至此，建議斬殺江湛及徐湛之以謝天下，惟宋文帝將責任歸於自己，沒有聽從。後劉劭因巫蠱之事令宋文帝大為失望，並有意廢太子，江湛及徐湛之都支持，劉劭遂在元嘉三十年（453年）發動政變弒殺宋文帝時也將二人殺害。
魏太武帝南征時命太子拓跋晃監國，因他與中常侍宗愛不和，宗愛遂誣告太子親信仇尼道盛及任平城，讓太武帝將二人處死，並連帶不少東宮屬官。拓跋晃因而憂死。太武帝後思念太子，宗愛擔憂會獲罪，遂弒太武帝，立拓跋余為帝。宋文帝知太武帝死後決意發動第三次北伐。
被廢為庶人的劉義康先前因先後捲入范曄及胡誕世的逆謀事件，故流放於安城郡。至魏軍兵犯瓜步時總終因宋文帝擔心再有人以義康名義起事叛亂，於元嘉二十八年賜死了他。
元嘉二十九年（452年），宋文帝得知北魏發生政變，魏太武帝被殺，遂倉卒圖謀再次北伐，並得魯爽等人支持，但太子中庶子何偃認為北方數州經歷過上一次北伐後還未復原，不是好時機，上一次反對北伐的沈慶之再度進諫試圖阻止北伐，但宋文帝都不接納。五月丙申，宋文帝下詔北伐，命蕭思話督冀州刺史張永攻碻磝，魯爽、魯秀兄弟與程天祚率四萬荊州兵攻許洛，雍州刺史臧質攻潼關。青州刺史劉興祖得知北伐，進言請派青冀二州共七千兵直指中山，佔據河北要地，並取當地農作物補充軍糧，一旦成功，河南守軍亦當潰敗，率北伐主力的張永更可北渡黃河作支援。然而宋文帝一心只想收復河南，不肯聽從。
大軍出發後，守歷城的建威將軍申坦入黃河支援，張永司馬崔訓及齊郡太守胡景世都率青州兵和張永會合。當年七月，張永到達碻磝，並圍城，接著兵分三路攻城，張永、胡景世統東路，申坦統西路而崔訓統南路，可是仍久攻不下。八月辛亥日（9月4日）夜晚，魏軍挖地道出城，縱火燒毀崔訓營壘及攻城器具，兩日後又燒了張永和胡景世的，不久魏軍再破壞崔訓進攻的通道。張永於是在當晚便撤圍退兵，可是卻沒有告知其他人，於是令宋軍大亂，被魏軍攻擊，死傷慘重。蕭思話於是率兵增援，盡力攻城但仍失敗。八月丁卯日（9月20日），蕭思話見久攻不下，青、徐二州又歉收，遂在八月丁卯日率軍退還歷城，斬崔訓並收張永、申坦下獄。
由魯爽率領的西軍進攻長社，守戍的禿髮幡出逃，臧質則只出襄陽城郊，柳元景及薛安都進兵洪關；梁州刺史劉秀之也派蕭道成進兵長安。北魏方面封禮進防弘農，兒烏干守潼關，拓跋遼守河內。不久，魯爽在大索擊敗拓跋僕蘭，進而攻虎牢，然而因為知道東軍已退，於是和柳元景都退兵。蕭道成等軍亦見魏援將至，退還仇池。北伐再次無功而還。
此役作戰地區局限，規模亦不大，對宋魏兩國影響及不上兩次北伐，魏及後還因宗愛再殺由他擁立的南安王拓跋余而引來一場由源賀等人領導的政變，終讓魏文成帝繼位。不過宋文帝對此役乘魏太武帝去世仍然失敗大感不滿，曾對蕭思話下書：「北虜已經從戰爭中獲利了，而現在快進入隆冬季節，若果他們敢來送死，我們兄弟父子就要親自抗擊了。說到這裏又更憤怒了！可以將這詔給張永和申坦看。」更向劉義恭說：「早知道諸將是這樣子，我就親自持刀在他們後面督戰了。現在後悔也來不及了！」不過，巧合的是，次年宋文帝就因太子劉劭的政變而喪命，由其領導的北伐亦告終結。南北兩國的君主皆被殺，使南北朝也維持對歭局面。