咸丰四年二月,署理江苏巡抚张震克复上海。
同月,太平天国北伐援军近八千人,为救援陷入不利状况的北伐军,在夏官副丞相曾立昌、冬官副丞相许宗扬等率领下,再度进犯安徽,准备由安庆度过黄河。
安徽形势再度告急,向荣急命张震堵截此路北伐援军。
林凤祥之北伐军,于咸丰三年六月攻克河南归德府城,缴获火药两万余公斤以及大量铁炮。之后,便北上刘家口,拟由此北渡黄河,取道山东北上,因清军在黄河渡口严密布防,该处无船可渡,太平军只得沿河西走,连下宁陵、睢州、杞县、陈留,进逼开封,不克,乃撤往中牟县之朱仙镇。此时,由于沿途大量吸收捻党和淮北各地群众参军,声势更大。
北伐军次后撤离朱仙镇,经中牟、郑州、荥阳,到达汜水、巩县地区,在这裏渡过黄河。七月攻破河南温县,进围怀庆府。当时城内仅有清军三百人,连同团勇壮丁,总计不过万人。
林凤祥等原以为可以迅速攻克,没想到屡攻不下,于是将怀庆城团团围住,在城外建营立寨,一面阻援,一面继续攻城。清政府派直隶总督讷尔经额为钦差大臣,调集兵力两万余人火速赶到怀庆增援。
北伐军围攻怀庆城近两个月,未能攻下。九月北伐军遂主动撤围西进,绕道济源,进入山西,连下垣曲、绛县、曲沃,于九月中旬进至平阳、洪洞一带,然后转而向东,经屯留、潞城、黎城,复入河南,攻破涉县、武安。
其后北伐军经河南入直隶,攻克军事重镇临洺关,击溃立足未稳的讷尔经额部清军万余人。接着,连下直隶沙河、任县、隆平、柏乡、赵州、栾城、晋州、深州,迫近北京。
北伐军的胜利进军,使清廷满朝震动。咸丰急忙调兵遣将,加强北京防衞。并企图在滹沱河南合击和消灭太平军,为此,命令胜保为钦差大臣接替讷尔经额,命令僧格林沁屯兵涿州抵御。
北伐军在深州稍事休整后,于十月率部东走,连破献县、沧州,月底占领天津西南的静海县城和独流镇,前锋进至杨柳青。北伐军原想占领天津,但是,胜保很快率队赶到,并于十一月五日进入天津。僧格林沁也移营于天津西北之杨村,天津防御力量加强,北伐军占领天津的计划落空。
北伐军不能占领天津,便在静海、独流两地驻扎下来,由林凤祥、李开芳分别率部固守,同时报告天京,要求速派援军。
胜保率两万余清军围攻静海、独流。北伐军依托木城、堑壕顽强抵抗,胜保屡攻不下,僧格林沁奉命率部与胜保合力围攻。北伐军忍受着严寒和饥饿,整整坚持了一百天,最后终因被围日久粮弹均缺,援军又久等不至,不得已于咸丰四年二月五日突围南走。六日到达河间府之东城镇。胜保、僧格林沁率马队紧追不舍,当天就追到东城,将北伐军再次包围起来。
清军在东城四周挖掘深壕,设置鹿砦、木栅,防止太平军突围,并不时对东城发起进攻,太平军凭垒固守,但东城是个小镇,粮弹给养难以补充,因此,北伐军在这裏驻守一个月后,于三月七日日乘大雾再次突围,进至阜城。但是,进至阜城不久,很快又被三万多清军包围。
在和清军的战斗中,吉文元受伤阵亡,北伐军处境更加严酷。幸好这时北伐援军已过黄河,胜保带领万余清军赶往山东防堵,阜城压力减轻,使北伐军得以在此坚守两个月之久。
而北伐军再次派湖的援军,若是与林凤祥等部汇合,势必让北伐军声势再次大壮,为歼灭这股发匪增加更大困难。