1935年2月,中共中央政治局在云南扎西境内召开政治局扩大会议,讨论红军战略方针。毛泽东提议,利用敌人对红军要北渡长江的判断,出其不意,挥师向东打击战斗力最薄弱的黔军王家烈部,以运动战主动消灭敌人,再渡赤水回师遵义,得到与会人员的赞同。
2月18日下午2时,红1军团前卫2师抵达赤水河畔,太平渡无敌,红2师迅速控制了渡口两岸。19日,红3军团两个先锋团———红12团和红13团到达赤水河畔二郎滩,征集船只,架设浮桥。二郎滩东岸制高点有黔军两个团把守。红军在渡过了一个营之后,又迅速渡过了后续两个营。尽管这是一个背水阵,但红军渡河之后仍果断地向敌人发动了冲锋。敌人似惊弓之鸟,仓皇逃窜。红军牢牢地控制了二郎滩渡口。至20日,中央红军已全部渡过了赤水河,重新来到了黔北地区。
中央红军二渡赤水,回师黔北,完全出乎敌人的预料。蒋介石急忙命令川军3个旅由扎西附近向东追击,抽调遵义及其附近的国民党部队向娄山关、桐梓增援。
2月24日,红1军团先头团突然进攻桐梓,迫使桐梓之敌退守娄山关。25日下午,红1、红3军团在彭德怀、杨尚昆统一指挥下,以一部兵力从正面牵制敌人,从北向南对娄山关的黔军发动猛攻,经过激战,于当日晚攻占娄山关,余敌仓皇夺路南逃。
27日,彭德怀、杨尚昆指挥红1、3军团,遵照中革军委“乘溃敌喘息未定跟追直下遵义,并准备打击援遵的薛(岳)部敌唐、韩两师”的命令,迅速逼到遵义城下,黔军将领王家烈命余部3个团退入遵义守城,另把一个团部署在城外阻击红军前进。
这时,向遵义增援的国民党中央军吴奇伟部第93师已进入忠庄铺,第59师也正向忠庄铺开进。王家烈立刻借口到吴奇伟处求救兵,于下午3时带手枪兵一个排跑去忠庄铺。
27日下午5时,吴奇伟的前部已到忠庄铺,他派100多人至遵义协防。此时城里的守城黔军都是从前线退下来的部队,已经和红军交手多次,子弹平均每枪还剩下10颗。但他们仍然拒绝“中央军”入城。在吴奇伟的严厉命令下,虽让“中央军”入城,黔军仍坚持各自防守、互不干涉。
红3军团主力抵达遵义城下后,立即发起了猛攻,国民党守军稍作抵抗后弃城向南溃逃。2月27日深夜,红军再次占领遵义,并于28日晨控制了城南的红花岗、老鸦山一线高地。
此时,吴奇伟对于是否反攻遵义举棋不定,于是召集师、团长开会,商议对策。会上,各位“中央军”将领都认为只要发动攻势,红军就会撤离遵义,因而一致主张攻击。吴奇伟听后当即决定向遵义进行反攻。28日上午8时当王家烈赶到时,会议已经开完,吴奇伟仅告诉王家烈:“现有两师兵力足够反攻。”上午10时,吴奇伟部两师全员到达,随即开始进攻。经过6小时的激烈战斗,红军阵地丝毫没有被攻克的迹象,吴奇伟却得到报告说,红军两支部队向他的指挥所迅速袭来。这一出敌意外的打击,让王家烈、吴奇伟仓皇逃走。前方的国民党两师闻讯后立即溃败,红1军团主力乘胜追击,一支部队插至乌江北岸,切断国民党军的退路。吴奇伟急令在江南的一师国民党军过江救援,但该师师长却回答:江北已经兵败如山倒,救援已经没有意义,巩固江南阵地才是当务之急。当红军追至乌江边时,已逃过江的吴奇伟竟下令砍断浮桥,落在后面的1800名敌军因无路可逃被红军缴械。
红军在5天之内连下桐梓、娄山关、遵义,击溃和歼灭敌两个师又8个团,取得了长征以来的最大胜利。此役毙伤敌2400余人,俘敌3000余人,缴获大批军用物资,取得了长征开始以来最大的一次胜利,士气大振。蒋介石称此战为“国军追击以来的奇耻大辱”。