在经过一番争论之后,4月18日,国共两党负责人举行了联席会议,决定进行第二次北伐,以第一集团军第四方面军为主干,由唐生智任北伐军总指挥,率第四、第十一、第三十五、第三十六各军入豫进攻奉军,而对东、南、西三面采取守势,留第十二、第十七及第八军之一部镇守湖北。唐生智任命李品仙为汉口卫戍司令、叶挺兼武昌卫戍司令。让朱培德所部第三、第九军留守江西,警戒南京、安徽;让鲁涤平第二军一部、何键第三十五军之一部及陈嘉佑第十四军全部留守湖南,对广东、贵州方面警戒。让夏斗寅所辖第十四师留守宜昌,警戒四川。
武汉国民政府军事委员会还分别任命冯玉祥、阎锡山为第二、第三集团军司令。第二次北伐的军事行动分两期进行,第一期占领河南,第二期攻占北平。计划在占领河南与冯玉祥会师后,由冯玉祥在阎锡山的支持下,继续向北平推进,完成全部作战计划。
4月19日,武汉国民政府在武昌举行了第二期北伐誓师大会,中央党部及国民政府委员全体出席,孙科、徐谦、谭延闿等先后发表了演说,接着又举行了盛大的阅兵仪式,五十多万人到会,场面极为壮观。唐生智以北伐军总指挥名义将所部分为三个纵队,以张发奎为第一纵队司令官,指挥第四、第十一军及贺龙独立第十五师共计二万二千人,在平汉路右翼作战;以刘兴为第二纵队司令官,指挥第三十五、第三十六军约二万二千人向平汉路正面前进;以新收编的河南保卫军田维勤、靳云鹗等部为第三纵队,以魏益三为司令官,担负左翼作战,沿平汉路西侧前进。唐生智即将率领这六万人的部队北上攻打拥有八万人的奉军精锐。他要求各部在29日前集中完毕,整装待发。
武汉政府内外交困的形势必然给北伐带来各种干扰。蒋介石南京政府虽然决定同时北伐,但仍未放弃对武汉的围攻,不断指使各路军阀骚扰两湖。也就在唐生智举行誓师大会的同一天,贵州军阀周西成自铜仁进驻湖南沅陵,与袁祖铭旧部将领密谋向长沙进攻,并令黔军即刻向长沙进发。唐生智获知这一情报后,急令何键返湘,调集各军加以防御,才使黔军有所收敛。
4月底,武汉方面北伐军各部集结完毕,29日,唐生智由武汉出发赴河南前线指挥北伐,前来欢送的有好几万人。国共两党要员董必武、孙科、郭沫若、向忠发等先后致词,对唐赞誉有加。唐生智身穿雅致的军服,打着黄色绑腿,手持马鞭,一身典型的军人装束。他也发表了热情洋溢的讲话,认为革命是一定要胜利的,因为“革命是为大多数人的利益,尤其是为工农群众的利益!”他还指出,“我们革命军是受党和军事委员会指导,所以我觉得第二次北伐,是有十二万分的把握!”对北伐充满了必胜信心。至于北伐军的任务,他强调,“不仅要共同图谋前方的胜利,同时还要巩固后方,做革命的基础!”他还发誓:不消灭张作霖和蒋介石,誓不罢休!最后他带头高呼:拥护国民党!拥护总工会!拥护农民协会!拥护军事委员会!郭沫若则引呼“唐总指挥万岁”的口号,场面十分感人。
5月1日,张学良率领奉军主力,纠合吴佩孚残部共计十万余众,进窥武汉。同一天,唐生智抵达驻马店,召集高级军官开会,制定了向奉军进攻的作战计划,命令第三十六军军长刘兴率部由广水向驻马店集中,会合靳云鹗部向郾城、漯河之奉军进攻。唐生智在检阅担任主攻任务的第三十六军时,对全体将士进行了训话,声称:“要救河南的同胞,一定要打倒奉系军阀张作霖。”“革命军是人民的军队,如果压迫了民众,被民众厌弃,或自绝于民众,还成什么事体?”要求友善对待北方的民众。“如果不消灭奉军,大家一定要死在北方”。“只要拿牺牲精神去干,能够拚命去干,这种军队,一定会得到胜利的。怕牺牲的人一定会牺牲,怕死的一定会死,不怕死的人才能得救。”帮助将士克服畏难情绪,鼓励他们奋勇杀敌。
正当北伐军出师之时,西北的国民军将领冯玉祥宣布就任武汉政府委任的国民革命军第二集团军总司令职务,准备东进洛阳,与唐生智统帅的北伐军会师中原。5月7日,冯玉祥抵达潼关,致电武汉政府,希望唐生智督率所部从平汉路向郑州进攻。13日,唐生智下达了总攻击令,命令各路北伐军向奉军展开攻击。与北伐军对阵的是张学良、韩麟春指挥的奉军第三、四方面军团,他们以遂平、西平和上蔡三个县城为据点,凭险固守。双方在西平、上蔡一带发生了激战。
奉军在驻马店以北地区包围了靳云鹗部,唐生智令刘兴第三十六军以三个师九个团的兵力对奉军进行反包围,内外夹攻,重创奉军,迫使其退守西平。16日,奉军又调兵遣将,增派援军,准备固守西平。北伐军要进攻西平,还得经过遂平。刘兴为了寻求与奉军主力作战,便以第三师一部看守遂平,令主力部队即第一师绕过遂平直趋西平,让第二师担任预备队。第一师兵临西平城下之时,因遭到敌军猛烈炮火袭击,出现严重伤亡。刘兴又令第二师加入战斗,于是,北伐军士气倍增,有进无退。经过两天激战,八次冲锋,攻破敌军阵地十余处,歼敌精锐七个团以上。17日,终于攻克西平。奉军纷纷向漯河、郾城溃退。
同一天,北伐军右翼张发奎部克复上蔡,以能征善战著称的奉军副军长兼旅长富双英被迫投降,接受改编。随即,唐生智致电武汉国民政府,任命富双英为第二十一师师长,归第四军指挥。这样一来,北伐军不仅歼灭了奉军大量有生力量,打破了奉军在河南的防御系统,而且极大地鼓舞了士气,为推进北伐创造了有利条件。
奉军自西平、上蔡败北后,唐生智未给敌军以喘息机会,而是指挥两路北伐军乘胜追击。中路刘兴部向漯河之敌发起攻击,正当此时,因湖北、湖南接连发生夏斗寅、许克祥叛变,农民不愿帮助军队运送粮食,北伐军面临断炊的危险。于是,唐生智急忙致电武汉的周鳌山,要周找在农民群众中有很高威信的毛泽东设法解决此事。毛泽东以北伐大局为重,慨然应允。没过几天,岳阳的粮食被运送到漯河,解除了唐生智的燃眉之急。三十六军很快攻下漯河,接着又分兵三路,围攻郾城,并于当天占领郾城,迫使敌军退守临颍。
东路北伐军在克复上蔡后,向西华、逍遥镇、临颍追击前进。第十二师及贺龙独立第十五师在逍遥镇首先与奉军发生战斗。奉军凭借沙河屏障,筑堡防守。23日,贺龙部渡过沙河,迂回敌后,偷袭逍遥镇,奉军全力抵抗。贺龙师越战越勇,几次冲锋,终于攻入逍遥镇,与守军发生激烈巷战。守军见抵挡不住,赶忙向临颍、许昌逃命。
奉军在丢弃漯河、逍遥镇之后,集结大军于临颍,准备固守豫中,伺机反攻。驻在临颍的奉军有步兵、炮兵、骑兵,还有飞机队、坦克队,总兵力达七万人。张学良为固守临颍,振作士气,亲赴前线痛哭誓师,撤换军长,枪毙旅、团长四名。唐生智一鼓作气,命令北伐军主力在临颍与奉军展开决战。参加进攻临颍的部队有:第一纵队第四军第十二师,第十一军第十、二十六师,贺龙独立第十五师;第二纵队第三十六军第一、二师。
27日拂晓,北伐军攻打临颍的战斗开始了。第二天凌晨,分三路攻城。奉军装备精良、工事坚固,他们凭借坦克掩护,用密集炮火向来攻的北伐军进行疯狂扫射。北伐军一开始处于不利态势,但是,官兵们不畏牺牲,迎难而上。经过激战,北伐军出现较大伤亡。团长兼党代表、共产党员蒋先云,胸部、腿部负有重伤,仍坚持在前线指挥作战,最后血洒疆场,壮烈牺牲。
面对不进则败的紧急情况,唐生智、张发奎急调后备部队十几个团进行增援。奉军本已精疲力尽,见北伐援军冲上,更无心再战,便纷纷后撤,一片混乱。北伐军在当天下午,就反败为胜,冲破奉军防线,并乘胜追击。奉军沿途丢弃军用品甚多,连张学良私人用的宣纸信笺也抛弃满地。傍晚,北伐军将临颍城占领。在这一战役中,奉军遭到惨败,伤亡不下一万人,被俘超过一千人,其在河南的主力基本上被歼灭。余部只好向许昌逃窜。不过,北伐军也付出了伤亡官兵约八千人的巨大代价。可见战役是何等激烈!
北伐军第一、第二纵队在攻克临颍之后,担负左翼作战的第三纵队魏益三、樊钟秀部也赶来会师。唐生智未等奉军在许昌站稳脚跟,便命令北伐军分头前进,并派飞机协助,追击奉军。29日,张发奎部攻占许昌,第二天,刘兴部攻克新郑。北伐军所向披靡、势如破竹。张作霖见奉军一路惨败,决定放弃郑州、开封,张学良带着几万溃兵仓皇北渡黄河,退入河北。6月1日,张发奎部占领开封,刘兴部抵达郑州,与先期到达的冯玉祥部会师。至此,武汉政府第二次北伐第一阶段攻占河南的作战计划已基本完成。
唐生智到达郑州后,6月1日便与河南军将领靳云鹗会衔颁布安民告示,声称:北伐军刚刚底定河南,在新法律未颁行之前,凡与革命军不相抵触的旧法律仍可暂时适用;北伐军将保护民众的生命财产,请勿自扰;各县县长暂时兼管司法。若有疑义,可向北伐军总指挥部求得解释。可见,唐生智已开始行使对河南的管制权。
6月5日上午,唐生智在郑州召集第三十六军及第三十五军全体军官训话,声称:北伐军占领河南是将士们英勇作战的结果。对死亡官兵,深致哀悼;对作战将士要特别嘉奖。第一次北伐本来可以直捣幽燕,因蒋介石叛变半途而废。因此,在打倒奉系军阀的同时,也要打倒蒋介石。革命军是人民的武力,不是个人的工具;哪个官长背叛革命,士兵就要打倒他。对于河南的政治财政,军队不能干涉,应完全服从中央安排。唐还强调,第二次北伐虽然取得了暂时的胜利,但不要骄傲,要忍耐牺牲,努力完成国民革命。现在有革命和反革命两条路可走,我们应该永远为革命而奋斗牺牲。当天下午,唐生智又对军队政治工作人员发表讲演,勉励他们努力工作。