军需主任将武器运回去一个月,革命军出师北伐,作为先锋的第四军独立团和第七军向湖南进发,迅速攻占了长沙,随后挥师向着武汉进发,左纵队(第8军)和右纵队(第4、第7军)攻取岳阳、平江,直指武汉;第2、第3军、独立第1师和第5军第46团集结醴陵、攸县等地,对江西警戒,掩护北伐军侧背安全;黔军改编的第9、第10军从湖南常德地区进取湖北沙市、荆门,相机占领宜昌、襄阳;第6军和第1军第1、第2师为总预备队。
北伐大军相继入湘,分成左,中、右三路,向湘北直军发动进攻。8月19日,中央军向汨罗江北岸发起进攻。右纵队第4军进攻平江,其右翼第10师从托田渡汨罗江进占肥田,左翼第12师借其掩护,由白雨湖渡汨罗江,一部向天岳山、鲁肃山实施佯攻,一部向平江城东北攻击前进,经过激战,守军由北门退入城内。独立团向平江城东门猛攻,击退守军,攻入城内。平江守军1个旅被缴械。与此同时,右纵队第7军第1、第2旅分别占领浯口、黄塘后,在将军坪击退顽抗之敌,迅速向张家牌前进。第8旅猛攻将军山,遭守军反击。第7军使用预备队从两翼投入战斗,击退守军,攻占张家牌。左纵队第8军于同日渡过汨罗江后,未遭抵抗,即分别占领长乐街、黄谷市。之后,左右两个纵队乘胜前进,至8月22日连克岳阳、通城、羊楼司等地,开始进入湖北境内作战。 在此期间,吴大帅率部协同奉军在直隶南口等地将革命军击败后,调兵南下,亲率湖北暂编第4师和陆军第8师于8月25日抵达汉口,令自岳阳、通城败退的湖北暂编第1师和卫兵旅等部共万余人固守湖北咸宁地区汀泗桥,并派第25师第13混成旅另1个团增援。另以陆军第8师进至贺胜桥地区设置坚固阵地;武卫军占领纸坊,鄂军第3旅及部分湘军残部在白螺矶、新堤、嘉鱼一带,协同海军阻止国民革命军渡江。
8月25日,国民革命军第四军独立团作为第12师的前卫,奔袭粤汉铁路上的中伙铺车站,歼灭直军1个团;第10师进占杨泉畈。第7军占领大沙坪、桂口市。第8军占领临湘、羊楼洞、蒲圻等地。第8军攻取汉阳、汉口,第4、第7军沿铁路北进,攻取武昌 。
第12师第35团在高猪山击退直军一部的阻击,进至铁路桥头,遭对方火力封锁;第36团进至汀泗桥东南高地前,遭敌俯射,前进受阻。第10师第29、第30团分别在第36团两侧展开,激战入夜,仍无进展。第36团乘夜暗实施中央突破,也未得手。第12师决心以独立团和炮兵营向汀泗桥东北的古塘角迂回,从右侧后包围歼敌。27日凌晨,独立团从小路隐蔽接近古塘角,配合正面部队的全线攻击。直军遭前后夹击,全线溃败,被俘2400余人,残部向北逃遁。第4军占领汀泗桥。独立团乘胜猛追,当日中午攻占咸宁城。 吴大帅亲率湖北暂编第4师和陆军第8师及在汀泗桥战役中败退的残部共2万余人,在贺胜桥及其以南的杨林塘、桃林铺、王本立地区梯次设防,企图死守。国民革命军不给直军以喘息之机,于1926年8月29日由第4、第7军发起贺胜桥战役。第7军第8旅在袁家铺附近击退直军约1个团的抵抗后,向王本立前进,途中遭直军反击,被迫后撤。第4军第12师在杨林塘附近与直军激战后,形成对峙。30日拂晓,第4、第7军继续攻击,叶挺独立团猛打猛冲,在杨林塘突入直军主阵地,向桃林铺攻击前进。此时,直军一部从侧翼反击,企图对叶挺独立团实施包围。第10师第28团和第12师第36团适时增援,协力抗敌,突破直军桃林铺防线,向贺胜桥发展进攻。第7军攻占王本立后,迅即向贺胜桥东侧的南桥攻击。直军正面失利,侧背受敌,全线动摇,纷纷溃退。国民革命军于当日上午占领贺胜桥,俘敌3500余人,中路第四,第七、第八军主力全线击破汨罗江直军防线,继在汀泗桥、贺胜桥打败直军主力,进围武昌,一部绕道攻克汉阳、汉口,前锋进追武胜关。吴佩孚迅速集结兵力,企图凭借长江、汉水固守武汉。部署以陆军第3、第8师和第25师等部守备武昌;陆军第14师守备汉阳、汉口;另以湘军残部在沌口、金口,武卫军和河南第10师在阳逻、黄冈,湖北暂编第2师和河南暂编第2师在蔡甸、沙洋,第13混成旅、浚滑游击队等部在汉口附近地区,保障武汉的安全。国民革命军于9月1日包围武昌城。2日,前敌指挥部决定以第4军并配属第1军第2师和第7军第7、第8旅主攻武昌城;第8军继续准备进攻汉阳、汉口;第7军第1、第2旅在鄂城、樊口遮断直军长江交通,掩护攻城部队侧背安全;第1军第1师为总预备队,在崇阳待命。由于武昌城墙高筑,直军防守严密,攻城部队在缺乏周密准备的情况下,先后于3日、5日两次攻城,均未奏效,且伤亡甚重,遂对武昌改取封锁围困。
第8军于8月26日开始在临湘、嘉鱼间陆续渡过长江,9月5日向汉阳发起攻击。直军湖北暂编第2师倒戈,改编为国民革命军第十五军,配合第8军作战,6日攻占龟山。第8军第2师攻占汉阳兵工厂,第4师占领汉阳城。7日,第8军第2师渡过汉水,攻占汉口。吴大帅率残部北逃。第8军主力乘胜追击,至16日相继占领武胜关、平靖关、鸡公山和九里关。国民革命军攻占汉阳、汉口后,武昌已成孤城。
9月中旬,第7军和第1军第2师奉调入赣作战,由第4、第15军和第8军一部继续封锁围困武昌。10月8日,守军第3师师长率部投诚。10日,攻城部队在吴投诚部队接应下攻占武昌城,歼敌2万余人,生擒守城司令、第8师师长。正当国民革命军席卷湘、鄂,吴大帅军队濒于崩溃之际,孙大帅于8月25日在南京召开军事会议,决定从苏、浙、皖调兵10万入赣,会同其驻赣部队2万余人进攻湘、鄂;并令福建督理部进袭广东,威胁国民革命军后方。国民革命军总司令部为达到占领江西的预定目标,决定对江西转取攻势。
9月上旬,国民革命军分三路进军江西。在赣南,第2军第5师、第5军第16师第46团和第14军先于其他方向行动,攻占赣州后沿赣江北上,向吉安方向发展进攻。
在赣西,由第3军和第2军主力占领萍乡后,连克宜春、万载、分宜,在新喻与孙大帅麾下的直军一部激战三昼夜占领该地后,第3军向高安、第2军主力向樟树方向进击。在赣西北,第6军和第1军第1师分别克修水、铜鼓,继占奉新和高安。9月19日,第6军第19师乘虚攻占南昌城。孙大帅急从南浔铁路沿线和樟树地区调兵反击。由奉新向南昌攻击前进的第1军第1师在牛行受挫,伤亡甚重。第19师孤军苦战三日后,被迫于21日退出南昌。次日,第19师得本军第17师增援,再次攻入南昌,又遭直军优势兵力围攻,遂于23日突围,撤向奉新地区。
在此期间,孙大帅将其在赣、闽的部队编组为5个方面军,并设司令部于九江,亲自坐镇指挥,计划以一路反攻南昌后,由高安方向进击长沙;一路由武宁越过九宫山攻取湖北通山;一路由武穴渡江攻阳新,在咸宁、蒲圻间截断武昌至长沙铁路,然后北上解救武昌。