國民革命軍北伐
國民革命軍北伐，又稱國民政府北伐、中國國民黨北伐，是1926年至1928年間，中國國民黨領導的國民革命軍向北洋军阀發動之內战，因為國民革命軍戰場由南向北推進，故又簡稱“北伐”或“北伐戰爭”。
1926年7月9日，國民政府成立國民革命軍，由蔣中正擔任總司令，起兵廣東，連奪長沙、武漢、南京、上海等地；進至華中，國民政府内部因對苏联與中国共产党態度不同而分裂，北伐陷於停頓。寧漢復合後，國民革命軍繼續北上，加入西北冯玉祥、山西阎锡山後，1928年6月攻克北京。奉系軍閥、安國軍總司令、安国军政府海陸軍大元帅张作霖從北京撤往東北，隨後因皇姑屯事件被炸死，其子张学良於同年底宣佈东北易帜，歸順國民政府。
國民政府在北伐戰爭中，除了透過直屬的國民革命軍，也吸收中國各地反北洋勢力，成功將北洋軍閥及其掌控的北洋政府瓦解。北伐結束後，國民政府完成形式上的中国统一，成為中國在國際上唯一代表的政权。
1911年武昌起義爆發，引發各地連串反清，是為辛亥革命，次年中華民國成立，南京的民國臨時政府与北京的清廷北洋軍領袖袁世凯达成南北议和，由袁世凯取代孙中山出任中华民国临时大总统，换得滿清宣統帝逊位。为限制袁世凯，中华民国临时参议院通过《中华民国临时约法》，规定政体。
1913年，中华民国第一届国会议员选举结束，代表南方革命势力的國民黨取得议会多数。国民党幹事长宋教仁在赴北京组阁途中，被暗杀于上海。国民党斷言袁世凯是暗杀主谋，与其势成水火，发动一系列战争反袁及其后的北洋政府。
1915年，12月12日袁世凱稱帝，改元洪憲，25日蔡鍔、唐繼堯、李烈鈞等在昆明宣布云南独立，發起护国运动。1916年貴州劉顯世、廣西陸榮廷響應，江蘇都督馮國璋、江西都督李純、浙江都督朱瑞、湖南都督湯薌銘、山東都督靳雲鵬等五大帥聯合逼宮，而且各國公使紛紛表示反對，3月袁世凱下令撤銷洪憲帝制，6月6日憂憤而卒，袁世凱逝世之後，北洋軍人各行其是，内部分裂，形成三股主要的势力：段祺瑞为首的皖系、曹锟为首的直系和张作霖为旁支的奉系。他們为控制北洋政府而多次混战。
1919年，孙将革命势力改组为中国国民党。1920年代初，孙在苏联帮助下，组建黄埔军校，与中国共产党合作。中國共產黨員加入中國國民黨本屬一種策略，並非放棄其原有立場，共產黨黨員在中國國民黨中秘密組織黨團，把中國國民黨領導人分為左右兩派，聯絡左派，打擊右派，製造黨派分裂。1925年7月1日，在討伐陳炯明後，蔣中正在广州改组中华民国陆海军大元帅大本营为国民政府，以黄埔军校组建国民革命军。第一次國共合作推動全國革命形勢，1925年7月1日，廣東革命政府在廣州成立，組建國民革命軍，為北伐戰爭準備條件。在廣州，革命政府根基尚未穩固，地方軍閥仍然盤踞廣東各地，尤以東江地區之陳炯明勢力最強，威脅最大。
1920年，曹锟与段祺瑞爆发直皖战争。1922年，发生第一次直奉战争。
1924年第二次直奉战争后，奉系张作霖击败直系吴佩孚。10月，冯玉祥发动甲子兵变，推翻直系大总统曹锟，驱逐廢帝溥仪，并电邀孙北上共商国事。12月4日，孫抵天津，受到盛大歡迎，因勞累並受風寒，身體感覺不適。12月31日，孫扶病至北京，發表《入京宣言》，及對歡迎民眾之書面談話。孫堅持召開民选的國民會議以解決國是，段祺瑞卻主張召開军政商学实力派组成的善後會議。
1925年1月1日，孫因病發住進協和醫院治療，1月20日以後，病勢嚴重，不能飲食，經西醫診斷為肝癌末期，救治無效。3月12日9時30分，孫中山逝世。早在孫中山生前，不少中國國民黨員已反對改組，孫死後中國共產黨員勢力擴張，反共人士被迫離開廣東。11月，旅居上海、北京等地之中國國民黨中央委員鄒魯、謝持等在北京西山舉行會議，決定取消容共政策，另設中央黨部於上海，廣州中國國民黨中央不予承認，指為非法，中國國民黨遂開始分裂。
1925年2月1日，善后会议召开。同月，蒋中正率黄埔军校师生共三千人攻打陈炯明，巩固广东国民政府根据地。国民革命军东征打败陈炯明，至1926年初，广东全省底定，李宗仁也统一广西，並歸附國民政府，兩廣革命根據地統一，奠定基礎發動北伐戰爭。1925年7月，中华民国陆海军大元帅大本营改组，并设立国民政府军事委员会，改编黄埔学生军和辖下各地方部队。中国国民党成立国民政府，组织国民革命军，並得到苏联派遣顾问及提供武器彈藥等援助。同时，加大收编南方各省降部，何应钦、谭延闿、程潜、吴铁城、唐生智等中國近代著名人物，均于此时加入国民政府和中国国民党。直至1926年7月，国民政府共收编扩充国民革命军至八个军。 1925年10月，吴佩孚、孙传芳指挥直系军阀於长江流域争夺北洋政府领导权，向张作霖的奉系军阀发动反奉战争。1926年4月，國民軍撤出北京和天津，退往河北西北部及山西北部，駐守南口、多倫一帶；直軍、奉軍和晉軍組成聯盟進攻國民軍，雙方在南口一帶激戰，到8月國民軍不敵，退往綏遠、甘肅；吳佩孚親自率領主力部隊全力對付國民軍而無暇南顧，牽制北洋軍閥大量兵力，予北伐軍以可乘之機。北洋各军阀在长江流域实力削弱，无力顾及国民政府。
在国民政府北伐之前，当时中国政治和军事形势呈现多方格局，国民政府控制两广一带。1926年奉系张作霖稱霸於北方，號稱兵力35萬。張作霖掌控北洋政府，并辖有华北、东北等地。直系吴佩孚再起後，割據中原，兵力約20萬。吴佩孚占据湖南、湖北和河南三省以及河北、陕西部分地区，同时握有京汉铁路。在東南方面，孫傳芳自稱五省聯軍總司令，兵力約22萬。孙传芳在长江中下游地区，控制苏浙沪赣等地。三大集團形成鼎足之勢，其兵力雖遠超廣州國民政府，但彼此對立，未能團結一致；此外，國民軍傾向革命盤踞西北，而湖南軍閥唐生智又願意歸附，都有利於北伐。阎锡山掌握山西。
孫中山一貫主張發動北伐戰爭以統一中國，在1917～1924先後組軍發動三次北伐（第一、二次護法運動和第二次直奉戰爭中的皖奉粵聯軍）。但卻先後失敗於1918年的南北軍閥議和與七總裁制、1922年的六·一六事變及1924的廣州商團事變。。 1920年代，苏联在远东地区的最大威胁始终是日本，因此从中国各路势力中寻找反日派系并大力扶持，是苏联外交的核心。在1925年孙中山去世后，各路军阀中，奉系和皖系残余是亲日派，直系军阀与日本关系最差但其同时对苏联也颇为冷淡，政治倾向亲英美。因此，此时苏联的扶植对象是北方的冯玉祥和南方的汪兆铭、蒋中正（国民党内高层最反苏的许崇智、胡汉民因廖仲恺被刺案已被迫下野），积极参与筹备国民政府北伐。不料，1925年10月10日，江浙军阀孙传芳（直系）突然联合皖、赣、苏、闽组成五省联军起兵反奉，并邀同为直系军阀吴佩孚出山，吴通电受14省拥戴就任讨贼联军总司令起兵讨伐奉系张作霖。这一事件使苏联对北伐态度立即逆转，接替鲍罗廷担任联络的季山嘉表示强烈反对北伐。蒋中正对苏联的态度变化大感意外，但他并不了解，季山嘉的态度实际上是莫斯科的意见。因为全力策划反奉战争的莫斯科担心广州国民党发动北伐，会使南方军阀吴佩孚、孙传芳腹背受敌，从而使反奉战争半途而废，最严重时甚至可能逼迫直系奉系军阀合流共同对抗北伐军。因此，刚一听说国民党有北伐计划，共产国际东方部部长就明确告诉其在中国的代表称：“我们强烈谴责北伐。”。
根据文献记载，包括中國共產黨的党史等，中共当时支持和积极配合在廣東的國民政府准备北伐。1926年2月，在北京，中国共产党中央特别会议提出出兵北伐推翻军阀统治的主张。1988年出版的《陈独秀年谱》称陈独秀违反中共中央1926年2月北京特别会议支持北伐的决定，同年7月发文反对北伐，但1990年代起有学者對於此观点提出反对意见，列出证据认为总的来说陈独秀是赞成北伐的。北伐正式开始之前，经中共广东区委决定命叶挺筹建的以中共党员为主为骨干、实际上是由中国共产党直接领导的国民革命军第四军叶挺独立团，在1926年5月就已与军阀吴佩孚部交战；是年7月北伐正式开始之后，该部所向披靡，在湖北汀泗桥和贺胜桥两次战役中立下战功，击溃吴佩孚主力；在攻占武昌城之役中再建战功，致该部所在的国民革命军第四军被誉为“铁军”。
1926年5月，湖南代理省長唐生智歸附國民政府。5月，北伐軍先遣部應唐生智請求進入湖南，進展順利。与此同时，随着湖南形势的恶化，吴佩孚命葉開鑫為湘軍總司令，率部進攻唐部。至5月底，国民革命军第七军（軍長李宗仁）第八旅和国民革命军第四军（軍長李济深）叶挺独立团先期入湘，增援唐生智部，打開北伐前進道路。以防御吴佩孚军队进攻。6月初，叶挺独立团和第七军第八旅分別在渌田和金蘭寺等地擊潰葉開鑫一部，雙方對峙於淥水、漣水一綫。
1926年6月5日，中国国民党中央执行委员会临时全体会议通过迅速出师北伐案。7月4日，在广州，中国国民党中央执行委员会临时全体会议通过《国民革命军北伐宣言》，陈述向北洋政府發動北伐的理由，其中提到：「統一政府不成立，則外禍益烈，內亂益甚，中國人民之困苦，亦將如水益深，如火益熱，中國人民將無噍類矣。」
1926年7月9日，蔣中正就職國民革命軍總司令；國民革命軍在廣州誓師北伐。宣示北伐之目的是打倒軍閥和帝國主義，尋求中國之統一和獨立自主。在蘇聯顧問幫助下，決定採取集中兵力行各個擊破的戰略方針，首先殲滅吳佩孚軍，然後消滅孫傳芳軍，最後消滅張作霖軍。初期策略是：「先打吳佩孚，聯絡孫傳芳，不理張作霖。」國民政府以兩廣為基地，以主力進軍湖南。北伐軍兵分三路：主力部隊進攻湖南、湖北；中路進入江西；東路駐守廣東東部，伺機進入福建。北伐初期反帝國主義運動，以英國為第一對象，日本初持靜觀態度，蔣亦曲意聯好。北伐軍兵力約10萬人，由蔣中正擔任總司令。中國共產黨在擴大會議上與第三國際指示中，均強調中國共產革命的根基是解決農民問題。在北伐中，中國共產黨組織農會，擴大工農運動，迅速擴張勢力。國民政府內分裂成左右派。
在民眾大力支援下，北伐軍進展迅速。1926年6月初，叶挺独立团和第七军第八旅分別在渌田（今湖南安仁北）和金蘭寺等地擊潰葉開鑫一部，雙方對峙於淥水、漣水一綫。陈铭枢部与张发奎部分别由高州和琼崖两地开拔援湘。7月﹐北伐軍攻下長沙，貴州、四川等軍閥宣稱歸附。7月上旬，国民革命军第四军第十師、第十二師和葉挺獨立團及第七軍、第八軍分別在安仁、永豐（今湖南雙峰）地區集中後，分路并進。第四軍克醴陵，第八軍三個師佔湘潭，另兩個師和第七軍一個旅攻寧鄉。7月11日，國民革命軍進佔長沙，迫葉開鑫部退守汨羅江北岸。8月，北伐軍攻下湘北重鎮岳州，吳佩孚匆忙率兵南下增防。8月12日，國民革命軍召開軍事會議，決定以第四軍、第七軍、第八軍直取武漢；國民革命軍第二軍、國民革命軍第三軍集結醴陵、攸縣，對江西警戒；國民革命軍第六軍和國民革命軍第一軍第一師、第二師為總預備隊，隨主力跟進。8月19日，第四軍攻克平江，向通城進擊；第七軍佔領浯口，向羊樓司進發。8月22日，第八軍攻克岳陽。葉開鑫部萬餘人退據粵漢鐵路上的要隘汀四橋，吳佩孚急調一個混成旅和一個團馳援，企圖憑險固守。8月26日，国民革命軍第四軍六個團發起攻擊，激戰一晝夜，不克。吳佩孚親臨督戰，下令“退卻者殺無赦”，雙方互有勝負，湖北汀泗橋幾度易手。8月27日，張發奎親督三十五團，和葉挺獨立團迂迴吳軍側後，突然猛攻，佔領汀泗橋。吳軍前後受攻擊，退守賀勝橋。吳佩孚親率兩個師增援。
8月30日，国民革命軍第四軍、第七軍與吳軍展開激戰，第八軍首先攻入吳軍陣地，其他各部隨即擴大戰果，取得賀胜橋大捷。8月底，北伐軍攻下通下往武漢之險要門戶汀泗橋和賀勝橋，吳軍兵敗如山倒，從此一蹶不振。吳軍退守武漢。9月1日，第四軍、第七軍逼近武昌，9月3日、9月5日兩次攻城不克，遂封鎖圍困。這時，漢陽守軍一個師起義，吳佩孚率一部退往河南信陽。第八軍9月6日進漢陽，9月7日佔漢口，主力乘勢進佔武勝關。10月初，武昌守军曾两次突围失败。10月8日，守卫城南的吴俊卿第三师准备投诚，10月10日，他打开城门迎接北伐军入城，当日，葉挺獨立團首先攻佔蛇山，国民革命軍占領武昌，二萬多守軍全部被殲。生擒劉玉春、陳嘉謨，至此吳佩孚在武漢軍力被全部消滅。北伐軍佔領兩湖，聲威大振。
北伐初期，孫傳芳按兵不動，擬坐收漁利，到北伐軍攻下長沙，才派兵增援江西，同時令閩軍進犯廣東。8月下旬，孫傳芳見吳軍瀕於崩潰，決定從江蘇、浙江、安徽調兵十萬，會同駐江西部隊兩萬餘人，向南潯鐵路沿線和江西湖北邊境集中，企圖截斷武昌至長沙鐵路，攻取湖南、湖北。蔣於擊破吳佩孚後，決進取江西，兵力約五萬人。北伐軍進抵武漢後，也調兵進攻江西，與孫軍發生激戰。在江西南部，第二軍第五師和第五軍第四十六團協同獨立第一師攻佔贛縣（今贛州市）後，沿贛江北上。在江西西部，第三軍和第二軍主力出萍鄉，連克宜春、萬載、分宜，在新喻(今江西新余)與孫軍激戰後，分別向高安、樟樹（今樟樹市）進發。在江西西北部，第六軍和第一軍第一師先後攻佔修水、銅鼓、高安。孫軍雖在兵力上佔有優勢，但指揮不統一，未能協力作戰。9月19日第六軍第十九師乘勢攻佔南昌，遭孙军反撲，加之增援的第一軍第一師又在牛行（今屬南昌市）戰敗，乃於9月24日退向奉新。蒋加派援军2万人。
10月上旬，第二軍主力攻佔樟樹、豐城，第三軍殲滅孫軍一部於南昌西山萬壽宮地區；由湖北東南部進入江西西北的第七軍，在箬溪重創孫軍一個師後，攻佔德安，形成了圍攻南昌的態勢。由於孫軍回師救援，國民革命軍各軍又未協同，德安得而復失，第六軍攻永修失利，第三軍在牛行、樂化受挫。這時，第二軍和第一軍第二師冒然第二次進攻南昌失利，被迫於10月13日撤退。南昌又为孙军夺回。國民革命軍吸取教訓，決心集中兵力先破南潯鐵路之敵，爾後再圖南昌，並調第四軍由湖北入江西。10月20日，國民革命軍第十四軍在第二軍配合下攻克臨川（今撫州），截斷江西福建通路。10月，蔣下命令進入福建部隊，攻破周蔭人主力後，調往江西參戰；先後攻克樟樹、豐城、建昌、德安、永修、撫州，孫傳芳乞和，蔣拒絕。11月2日开始第三次进攻南昌。第七軍再克德安，第四軍攻佔馬回嶺，兩軍又在德安南面的九仙嶺擊潰孫軍兩個師，截斷南潯鐵路。11月，攻克九江，南昌守軍負嵎頑抗，蔣親臨督戰攻克，孫傳芳在江西軍力被全部消滅。永修、樂化等地孫軍潰逃，在滁槎附近被殲一萬五千人；11月8日，國民革命軍攻佔南昌，殲滅守军萬餘人。蔣通電各省促人民自決。孙军殘部敗退安徽南部及江蘇浙江一帶。孙军大溃，精锐尽丧，为北伐以来规模最大战役。
孫傳芳軍駐福建的五省聯軍福建總司令周蔭人部四個軍三萬餘人，為策應江西作戰，進軍粵東，試圖將国民革命根據地連根拔除。然而消息於進軍前已透露。
1926年9月，蔣命令潮汕部隊進攻福建。10月上旬，攻佔廣東蕉嶺、松口、饒平等地。由於周蔭人於直隸出生，對閩系來說是客軍而非地主，因此国民革命军第一軍軍長何應欽決定主動出擊擊潰其主力，同時蔣中正也派遣李大超前至閩軍中收買分化。10月中旬，何應欽整合廣東保安團與黃埔軍校在學生作為防禦主力，第一軍第三師譚曙卿則作為攻擊矛頭，於10月9日和第十四師主力進襲擊周部後方，佔領永定，然後回師松口；此時，周部第二軍兩個師在蕉嶺起義，並配合作戰，殲滅周部第三軍。在福建方面，由於閩軍平日橫行霸道，民怨極深，各地民軍蠭起。由於周部於福建之風評不佳，在永定戰鬥之役遭受国民革命軍與城內民眾的聯合夾擊崩潰，僅帶少數侍衛逃出。是日，第十四師馮軼裴則於擊潰閩軍劉雲峰旅。此役国民革命軍俘虜4,000人，繳獲4,000餘支槍械與十多門火炮。周部第四軍和第二軍殘部退往長汀。北伐軍勢如破竹，閩軍望風而逃。10月13日，第一軍於梅縣鬆口戰鬥擊潰劉俊、李寶珩旅，在不到一星期，周蔭人主力已損近半。受此影響，曹萬順與杜起雲兩旅於10月17日接受國民政府收編建議，倒戈改組為國民革命軍第十七軍。何應欽則升任為國民革命軍東路總指揮，揮軍福建。10月下旬，第十七軍由上杭沿汀江兩岸向北推進，在由江西入福建的第十四軍第二師配合下，相繼佔領龍溪、晉江、莆田、永泰，逼近閩侯。
蔣令入閩部隊在攻破周蔭人主力後赴贛參戰，先後攻下樟樹、豐城、建昌、德安、永修、撫州。11月，先後攻下漳州、泉州，福建全境平定。12月初，自江西東部入福建的第二軍第六師進佔建甌，切断福建、浙江孫軍的聯繫。駐福建海軍第一艦隊起義，於12月2日決定接受廣東國民政府改編。周部駐閩侯一個旅投誠，國民革命軍於12月9日佔領閩侯，周部退往浙江。東路軍於12月間占領福建全省，向浙江挺進。
孫傳芳連遭失敗，求援於奉軍。張作霖企圖乘機奪佔孫、吳的地盤，幾一部接防江蘇、安徽北部，一部入河南增援吳佩孚。孫傳芳收集殘部八萬餘人，分佈在滬寧鐵路、滬杭鐵路沿線和安徽南部地區。1927年初，國民革命軍為肅清長江下游之敵，分三路進軍。中路軍（分江左軍和江右軍）分別由湖北、江西沿長江向安徽、江蘇推進，主攻南京；東路軍由福建、江西分路入浙江，進軍淞滬，助攻南京；西路軍由湖北入河南，鉗制北面之敵。1月上旬，東路軍國民革命軍第二十六軍在富陽遭孫軍一部反擊，退至衢縣（今衢州）。1月27日，第一軍協同第二十六軍反擊，在龍游附近擊潰孫軍，2月上旬，進佔金華、蘭溪，繼而在桐廬和富陽擊敗孫軍，2月18日佔領杭縣（今杭州）。2月底，國民革命軍占領浙江全境。3月上旬，東路軍開始進攻淞滬，至3月20日，一部經太湖以西進佔武進（今常州），截斷滬寧鐵路，主力連克松江、吳縣（今蘇州），逼近上海。3月21日，中國共產黨上海區委員會決定於當日把工人罷工轉入工人武裝暴動。計其武裝：手槍二百五十支、手榴彈二百枚。周恩來等中國共產黨人領導上海工人舉行第三次武裝起義，激戰兩天一夜佔領上海後，東路軍才開進市區。中路軍(第二军、第六军)的江左軍由湖北東部向懷寧（今安慶）挺進，孫軍陳調元、王普等部相繼起義，懷寧不戰而下。中路軍的江右軍從江西境沿長江南岸東進，相繼攻克蕪湖、當塗，3月23日佔领南京。3月24日南京事件发生，造成英国2人，美、法、日、意各死1人。美国受伤3人，英、日各2人受伤。蔣拒絕孫傳芳求和。3月底基本消滅北洋軍閥吳佩孚、孫傳芳軍隊。
自北伐展開後，中國共產黨員加緊奪取領導權，與中國國民黨鬥爭日趨激烈，1927年2月在鮑羅廷控制下，中國國民黨中央黨部及國民政府遷設武漢，議決削減蔣權力。1927年3月10日至3月17日，在中國國民黨第二屆中央委員會第三次全體會議後，其執監委暨候補委員80名中，中國共產黨員約居三分之一，親共之左派亦居三分之一，國民黨中央黨部各部部長暨其秘書，共產黨員亦佔一半以上，至此國民政府已由蘇聯顾问与中國共產黨势力全權把持。在北伐軍進攻上海時，中國共產黨策動工人起事，企圖奪取上海政權，引起商民疑慮。
3月24日，发生南京事件，國民黨中右派势力称中國共產黨策動部份國民革命軍針對英美日領事館及外國教堂、寺廟、學校、醫院、商店、住宅進行燒殺打劫等排外運動，造成2名英國人死亡、意大利、法國、日本和美國人各1人共6位僑民死亡。3月24日下午3時，孤立無援的美國領事請求了本來泊在長江守護租界的英、美軍艦向南京開砲，令中國軍民死了36-39人。南京事件後，英國、美國、大日本帝國、法蘭西第三共和國和意大利王國5國向國民政府提出抗議，國民政府只好道歉和賠償。儘管如此，國民政府在此事件以賠錢換來了和各列強關係正常化，並逐步獲得了國際承認。
鮑羅廷並在武漢成立「中國國民黨中央執行委員會暨國民政府委員會臨時聯席會議」，憑藉掌握中共與國民黨左派進而取得政治主導權，以所谓「提高黨權」、「反對軍事獨裁」、「打倒新軍閥」為理由，於1927年3月10日，中國國民黨二屆三中全會通過《統一黨的領導機關決議案》，通過「統一革命勢力」、「統一黨的領導機關案」等反蔣方案，隨即在蔣北伐途中剝奪蔣主席職務，降其為普通委員。蔣在南昌發表《告黃埔同學書》，表明不接受該決議。
北伐戰爭節節勝利推進，嚴重威脅著着帝國主義；蔣決定「以快刀斬亂麻的方式清黨，把越軌的左傾幼稚分子鎮壓下去」；先後在贛州、南昌、安慶、九江等地發動清黨，蔣即表示：不用武力或任何群眾暴動改變租界之地位。4月，中國國民黨中央監察委員在上海召開緊急會議，指責中國國民黨內之中國共產黨員受共產國際指使，破壞國民革命，要求對「中共首要」採取緊急處理，清除黨內中國共產黨分子。4月12日，蔣在上海發動清党（或謂四一二政變），4月18日另立南京國民政府。設「清黨委員會」，實行武力清黨，在上海、南京、廣州等地緝捕中國共產黨員。鮑羅廷也秘密策動郭松齡將軍反對張作霖。中共土地改革路線為：「有土皆豪，凡紳必劣」。張蔣兩人1926年秋天就開始秘密接觸，兩人分別派唐生智和楊宇霆作為代表，展開秘密會晤，達成共同驅逐共產國際勢力協議。4月6日，「南京事件」後不到兩周，蔣於北伐途中清黨，張作霖即於北京搜查蘇聯大使馆，逮捕中國共產黨人李大釗等，表明與國民革命軍皆反共，不必互相為敵。張作霖得到公使團同意，搜查遠東銀行、中東鐵路辦公處，逮捕58名中國人。在搜出的秘密文件中，竟發現莫斯科蘇聯共產黨打電報給當時尚是革命政府顧問的鮑羅廷。還清查出蘇聯企圖赤化中國之千餘文件，查獲並向外界公開共產國際發來大量指示、训令、颠覆材料（與馮玉祥合作企圖取代北洋政府文件、紅槍會及煽動農民紀錄、中國共產黨文件等，「蘇聯文證企圖彙編」），證實蘇聯全面指揮顛覆中國政府的運動。蘇聯與中國共產黨則強烈譴責中國國民黨粗暴侵犯蘇聯使館尊嚴，並認為此事件乃「帝國主義的挑撥，中國政府已淪為帝國主義者工具」。4月19日，蘇聯召回北京駐華代辦及大使館職員。4月，汪精衛回國，秘密前往武漢，武漢國民政府迎汪復職，「四一二事變後」開除蔣中正黨籍，下令討伐；南京國民政府也調兵遣將，對武漢政府軍事包圍和經濟封鎖，史稱「寧漢分裂」。武漢國民政府決定繼續北伐。此時武漢政府仍受鮑羅廷及共產黨員控制，共產黨員在湖南、湖北積極推行工農運動，組織工人罷工和沒收地主土地，引起軍人反抗。當時，入河南奉軍五個軍約十萬人，分佈在西平以北鐵路線及開封、鄭縣等地，企圖南犯。國民革命軍由唐生智率三個縱隊五萬餘人，從駐馬店地區分路北進。
1927年5月兵分三路渡江进攻徐州。李宗仁率左路军5月11日由芜湖渡江，白崇禧率中路军5月15日由南京渡江，何应钦率右路军5月20日从镇江和江阴渡江。6月12日進駐徐州，本欲乘勝追擊，但6月下旬武漢國民政府的唐生智率軍東征南京，蔣介石從徐州調兵回防，結果8月6日在徐州战斗中敗於直魯軍，得而復失。孙传芳乘机率安国军沿津浦铁路南下，渡淮河，攻占滁县、宝应。8月26-27日，孙传芳分由浦口、大河口、扬州三处渡江，反攻南京栖霞山。8月31日，在決定性的龙潭战斗孙军大败，残部二三万人分乘小船或泅水渡江退回江北，南京自此平定。
1927年5月中旬，第二縱隊殲滅奉軍七個團佔領西平、漯河；第一縱隊擊敗奉軍一部於上蔡，迫其一個旅投降。奉軍約七萬人，企圖在臨穎決戰。5月27日，第二縱隊發起進攻，受挫，第一縱隊馳援，奉軍傷亡逾萬，向北撤退。5月28日，唐生智部佔領臨後，分別向鄭縣、開封挺進。馮玉祥率部參加北伐戰爭後，進軍甘肅、陝西，轉師東進，5月27日攻克洛陽，6月1日與唐生智部會師鄭縣。6月，克復鄭州、許昌。6月7日，清江浦克復，孫傳芳通電下野。6月2日，國民革命軍佔領開封，奉軍敗走河北、山東。不久，吳佩孚率少數衛隊逃往四川。7月，「雲南易幟」。四川劉湘通電歸附中央。
1927年8月13日，由於作戰失利，南京國民政府蒋中正下野辭總司令職，8月19日寧漢復合。。9月10日，国民革命军在全椒打败安国军。安国军一路北撤。1927年12月3日至12月10日，中國国民党中央执行委员会在上海召开第二届中央执行委员会第四次全体会议预备会，会议最后一天恢复蒋为国民革命军总司令。
1928年1月4日，蒋介石進南京呈報正式復職。此時北方馮玉祥和閻錫山均願意歸附。蔣致電馮玉祥、閻錫山及各將領準備北伐。2月28日，中國國民黨中央政治會議決議馮玉祥為第二集團軍總司令，閻錫山為第三集團軍總司令，並命統歸蔣指揮。 1928年4月，蔣聯合馮玉祥、閻錫山及李宗仁共同討伐張作霖。國民革命軍所向克捷，連續攻克郯城、台兒莊、鄆城、韓莊、臨城、棗莊。第三軍團在魚臺失利，蔣電令各軍赴援。張宗昌下總退卻令，惟孫傳芳糾集餘部，尚圖頑抗。是月下旬，屢次攻克巨野、嘉祥，經西關攻克濟寧、滕縣、界河、魚臺、汶上、鄒縣、大名。連續攻克寧陽、兗州、曲阜、金鄉。連續攻克萊蕪、平陰、泰安、肥城。張宗昌部败退滦州，孫傳芳在北京宣布下野，張、孫殘部向国民革命軍投降。
日本為干涉國軍北伐，藉口保護僑民，派軍登陸山東，進駐濟南，伺機尋釁。日本於1928年4月19日決定再次出兵山東暗助軍閥張宗昌，4月21日駐天津的3個步兵中隊抵達濟南，4月25至27日，日軍又連續在青島登陸，沿膠濟鐵路運兵濟南市，到4月28日，駐濟日軍已達3,000餘人。日軍在鄰接濟南城的濟南商埠以緯四路為中心線，劃為東西兩個警備區，構築工事，收容日本僑民。1928年5月1日，攻克濟南，日軍出阻，造成五三慘案，國民政府外交特派員蔡公時遇害。國民革命軍當時在北軍仍掌握制空權下，由第一軍團劉峙指揮之顧祝同第九軍所轄之第三師，首先攻入濟南城內，各路會師完成任務，5月2日蔣總司令抵達濟南並要求日軍撤退，日軍應允並撤出工事。蔣嚴戒北伐軍勿予還擊，並嚴令入濟南部隊，於5月3日夜退出城郊，派員與日軍師團長福田商約束部隊，未得要領。蔣同時命令濟南駐軍一律撤出，免生衝突。5月4日、5月5日，日軍仍繼續放槍發炮，並引張宗昌以飛機炸北伐軍司令部。蔣為完成北伐，忍辱負重，勿予計較，限令北伐軍星夜渡河，僅飭留李延年步兵團駐守。不料5月3日上午賀耀祖部隊與日軍雙方發生衝突。5月6日，蔣移節黨家莊，繼續提兵北進，並籲召汪精衛、胡漢民回國，又切告奉系早日覺悟，日本阻礙北伐之陰謀，於是粉碎。另從外交交涉，向日軍司令及日本外交部嚴重抗議，要日軍同時撤出濟南，請英美協助調停。北伐軍連續攻克平陰、禹城、石家莊、臨沂、德州、定縣、張家口。蔣無視日本侵略者，與馮玉祥在濟南以南黨家莊車站會晤，繞過濟南繼續北伐。克復保定。
1928年五三惨案发生后，5月9日，张作霖呼吁双方南北双方停战，合力对抗日本侵略，在通电中表示“佥以国内苦战，外侮趁虚而入”应“以侮释嫌，合力抗外，必得世界之同情，对内更多符多年国民之要求”。他表示愿意派人到南京召开善后会议，商讨统一问题。5月底，國軍包圍京、津地區。6月3日晚，張作霖撤離北京，退出山海關外。張作霖坐火車抵達瀋陽附近皇姑屯車站（京奉鐵路和南滿鐵路交叉的三洞旱橋）時，被日本關東軍預埋炸藥刺杀。張作霖身負重傷，稍後死亡，為皇姑屯事件。6月8日，国民革命军第三集团军商震部开入北京，光復京、津，宣佈北伐結束，將北京改名北平。兩週後，張作霖兒子張學良趕回瀋陽，繼任父職，東北局勢復趨穩定；12月29日，張學良宣佈東三省易幟，全國出現形式上統一局面。
国民革命部隊詳細資料請參考北伐部隊情況條目。北伐前全國兵額約140萬，北伐後增至230萬人，軍餉開支超過國家全部收入，所以亟需裁軍，以減少軍餉支出。 1926年7月北伐军出征时的序列：