进攻湖南
1926年7月9日,蒋中正就职国民革命军总司令并誓师北伐。第一阶段从1926年5月开始。第四、第七军首途入湘,协助唐生智部稳定了湘南局势。第7军第8旅于6月1日在衡阳西北金兰寺地区击退叶开鑫一部的进攻。5日,进占攸县。援唐之战告捷,稳定了湖南战局,打开了北进通道。7月间,第四、第七、第八军攻克长沙,醴陵,取得了北伐战争第一个战役的胜利。嗣后,北伐大军相继入湘,分成左,中、右三路,向湘北吴军发动进攻。8月19日,中央军向汨罗江北岸发起进攻。唐生智根据总司令部关于迅速攻占武汉的决定,以第8军攻取汉阳、汉口,第4、第7军沿铁路北进,攻取武昌。
汀泗桥战役
第4军代理军长陈可钰决定乘吴佩孚军主力未到达之机,于1926年8月26日凌晨向汀泗桥发起进攻。第12师第35团在高猪山击退吴军一部的阻击,进至铁路桥头,遭对方火力封锁;第36团进至汀泗桥东南高地前,遭敌俯射,前进受阻。27日凌晨,叶挺独立团从小路隐蔽接近古塘角,配合正面部队的全线攻击。吴军遭前后夹击,全线溃败,被俘2400余人,残部向北逃遁。第4军占领汀泗桥。叶挺独立团乘胜猛追,当日中午攻占咸宁城。
贺胜桥战役
吴佩孚亲率湖北暂编第4师和陆军第8师及在汀泗桥战役中败退的残部共2万余人,在贺胜桥及其以南的杨林塘、桃林铺、王本立地区梯次设防,企图死守。国民革命军不给吴军以喘息之机,于1926年8月29日由第4、第7军发起贺胜桥战役。第7军第8旅在袁家铺附近击退吴军约1个团的抵抗后,第10师第28团和第12师第36团适时增援,协力抗敌,突破吴军桃林铺防线,向贺胜桥发展进攻。第7军攻占王本立后,迅即向贺胜桥东侧的南桥攻击。吴军正面失利,侧背受敌,全线动摇,纷纷溃退。国民革命军于当日上午占领贺胜桥,俘敌3500余人。
会攻武汉
吴佩孚迅速集结兵力,企图凭借长江、汉水固守武汉。国民革命军于9月1日包围武昌城。先后于3日、5日两次攻城,均未奏效,且伤亡甚重,遂对武昌改取封锁围困。后攻占汉阳、汉口,10月8日,守军第3师师长吴俊卿率部投诚。10日,攻城部队在吴俊卿部接应下攻占武昌城,歼敌2万余人。
攻取江西
9月上旬,国民革命军分三路进军江西。在赣南,由李济深指挥第2军第5师、第5军第16师第46团和第14军(由独立第1师改编,赖世璜任军长)先于其他方向行动,攻占赣州后沿赣江北上,向吉安方向发展进攻。在此期间,孙传芳将其在赣、闽的部队编组为5个方面军,并设司令部于九江,亲自坐镇指挥,计划以一路反攻南昌后,由高安方向进击长沙;一路由武宁越过九宫山攻取湖北通山;一路由武穴渡江攻阳新,在咸宁、蒲圻间截断武昌至长沙铁路,然后北上解救武昌。9月下旬,国民革命军总司令部组织再攻南昌。攻城部队连攻三日不克,伤亡甚重,被迫于13日撤退。
南浔路战役
国民革命军总司令部总结三次攻打南昌失利的教训,在于孙传芳军控制南浔铁路主要干线,便于机动。于是决定集中兵力,先破南浔铁路各要点之敌,尔后再取南昌,并决定从武昌增调第4军入赣作战。国民革命军入赣部队分三路于11月1日开始总攻。中央军第6军于11月3日开始向乐化攻击,遭孙军多次反击,伤亡甚重,后总预备队第1军第1、第2师赶到,协力攻击,于4日占领乐化、永修。此时,右翼军右纵队第2军主力已由进贤、三江口进逼南昌,右翼军左纵队第3军在第2、第1、第7、第6军各一部配合下,于11月7日占领牛行,继向余干方向追击,在滁槎俘敌1.5万人。孙传芳见败局已定,乘船逃回南京。南昌守军待援无望,弃城溃逃,被歼万余人。11月8日,国民革命军占领南昌。
进占福建
9月下旬,孙传芳为策应江西战场作战,令福建督理周荫人部进袭粤东。10月中旬,第1军第3、第14师袭击周部后方,攻占永定,然后回师松口,俘周部第3军4000余人。此时,周部第2军曹万顺、杜起云两个旅在蕉岭通电起义,改编为国民革命军第17军(曹万顺任军长),随即进至中都、松源地区,将退至该地区的周部第3军残部全部歼灭。12月初,第2军第6师由赣入闽,进占建瓯,切断闽、浙孙军联系。此时,驻闽海军起义,周部李生春旅投降。12月9日,国民革命军进占福州。
会攻南京
孙传芳连遭失败,求援于奉军张作霖,联合组成安国军,张作霖任总司令,孙传芳和张宗昌任副司令。为肃清长江下游之敌,国民革命军总司令部于1927年1月上旬决定进军杭州、上海,会攻南京。1927年1月下旬,东路军第1、第26军在第2军配合下,由浙江衢州向杭州方向发起进攻,在龙游附近击溃孙军一部,于二月上旬进占兰溪、金华后,乘胜向淳安、建德(今梅城)、浦江推进。在此期间,东路军第14、第17军和第1军一部由闽入浙,相继攻占临海、宁海、宁波、绍兴等地,肃清浙江境内的孙军。3月上旬,东路军开始进攻淞、沪,21日,
周恩来等领导上海工人举行第三次武装起义,经过30多个小时激战占领上海。第1军一部乘机进入上海市区。与此同时,江左军由鄂东向安庆、庐州(今合肥)挺进。相继攻克芜湖、当涂后,3月20日开始总攻南京,经两天激战,扫清江宁镇、秣陵关、龙都等外围据点。23日晚江右军各部分路进城,占领南京。
宁汉分裂
1927年3月24日二军六军占领南京。另一支北伐部队,国民革命军第一军等从广东出兵福建,于12月间占领福建全省,向浙江挺进。1927年2月底,占领浙江全境。3月22日一军进驻上海。
1927年4月12日,
蒋介石在上海发动“四一二”反革命政变,逮捕并屠杀中国共产党员和国民党左派。4月18日,蒋在南京另立南京国民政府,与武汉国民政府对峙,宁汉分裂。北伐军攻克上海、南京后,孙传芳不甘心失败,与张宗昌组成直鲁联军,反攻南京。奉系军阀张作霖也派兵进入河南,威胁武汉。南京方面亦组成三路军,北伐陇海路,5月下旬克蚌埠,6月初占徐州,后与直鲁军相持于鲁南。7月下旬,直鲁军反攻,占领徐州,蒋中正组织反攻未果,遂于8月12日辞职。嗣后,直鲁军进迫南京,在龙潭战役中为南京军所败,丧其主力,双方复相持于津浦路。同年冬,何应钦指挥第一路军反攻,十二月再克徐州。8月14日,
蒋介石下野。8月19日,武汉政府宣布迁都南京。9月初,汪精卫亲抵南京,宁汉合流。汪精卫又鼓励唐生智与张发奎分别于10月爆发宁汉战争、11月爆发广州张黄事变,但南京国民政府皆获得战争之胜利,迫使唐生智、张发奎等出国流亡。
二次北伐
1927年12月3日至10日国民党中央执行委员会在上海召开国民党二届四中全会预备会,会议的最后一天恢复了蒋中正复职为北伐全军总司令。1928年1月4日,蒋中正到任,继续领导北伐。北伐军在占领河南之后,屡次致电冯玉祥、阎钖山及各将领准备北伐。1928年4月7日,蒋介石在徐州誓师北伐。9日,各路北伐军发起全线总攻。20日,方部攻占济宁。30日,各路军队对济南发起总攻。当天夜晚,张宗昌率残部弃城北逃。孙传芳在北京宣布下野,张、孙残部向国民革命军投降。
1928年6月4日,张作霖当夜撤离北京,退出山海关外,张的专列在到达沈阳附近的皇姑屯(京奉铁路和南满铁路交叉的三洞旱桥),被日本关东军埋下的炸药炸毁,张作霖身负重伤,稍后死亡。6月8日,国民革命军开入北京。1928年12月29日
张学良在东北通电东北易帜,宣布效忠南京中央政府,北伐至此宣布成功。