1853年,也就是咸丰三年的时候,太平军打下了江南最大的城市——南京,然后就把南京改名叫天京,还定都在这儿,建起了太平天国。这时候,太平天国的老大天王洪秀全和老二东王杨秀清,在往后该怎么发展上有了不同想法。洪秀全觉得应该趁现在兵强马壮,直接去打北京;而杨秀清却觉得应该先去西边攻打安徽、江西、湖北这些省份,好让太平天国的地盘更大些。
两边说法都挺有理,谁也争不过谁,最后只能想了个“中间办法”,就是既北伐也西征。因为杨秀清管着太平天国的军事,所以在做的时候,他把10万多主力兵给了翼王石达开去西征;而让天官副丞相林凤祥和地官正丞相李开芳当北伐军的正副头儿,带着2万太平军去北伐。这样一来,就变成了“主要力量在西征,小部分人去北伐”的情况。
尽管林凤祥和李开芳带领的太平军只有2万人,但他们特别能打。短短不到半年,这支队伍就从皖北一路打到河南、山西,还冲进了清朝直隶地区(就是现在的河北),到了10月底,都快打到京城边上的天津了,这事儿闹得京城人心惶惶,清朝在北方的统治都快垮了。不过,太平军毕竟是孤军深入,后面没支援,再加上北方的冬天太冷,很多南方来的士兵都冻病了,没法打仗。这时候,清朝就从关外和漠南蒙古调来了八旗兵和蒙古骑兵,一起围攻太平军,形势就对太平军越来越不利了。到了咸丰四年(1854年)2月,太平军只好从天津撤走。之后,他们在北方各省跟清军打了好多年硬仗,一边打一边慢慢往南撤。
1865年咸丰五年2月的时候,清朝的军队打下了北伐军最后一个地盘——高唐(在山东聊城的高唐县)。北伐军的头儿林凤祥牺牲了,他的部队也全被打败了。之后,李开芳带着剩下的600多人跑到离高唐五十里的茌平县冯官屯。冯官屯是由三个村子连在一起的,外面还有高高的围墙。李开芳他们到了那里后,又挖了沟,立了栅栏,建起了很结实的防御设施。到了3月18日,清军的大将僧格林沁带着20000人马到了冯官屯,他们占了西边的两个村子,只留下太平军守着的冯官屯。接着,僧格林沁就用大炮猛轰冯官屯,村里头的房子都被炸塌了。
火炮打完之后,僧格林沁又叫清军去攻打冯官屯。太平军利用屯里挖的乱七八糟的地沟、地道和地窖,跟清军进行了激烈的街巷战斗,打死了很多清军。僧格林沁见硬攻不行,就换成了“水攻”的办法,就是让民工挖了一条很长很长的水渠,把河水引到冯官屯。4月20号那天,僧格林沁下令放水,冯官屯一下子就变成了大水塘,太平军的火枪火炮因为火药被水泡湿了都不能用了。到了5月31号,太平军的子弹和粮食都用完了,李开芳就带着最后80个能打的太平军往外冲,但人太少打不过清军,这80个人都被杀了,李开芳也被清军抓住了。僧格林沁觉得李开芳很有本事,想让李开芳投降清朝,还亲自去劝他,但李开芳都没答应。最后,李开芳被送到北京,被残忍地处死了,这位有名的将领就这样没了。
到现在,太平天国北伐军的最后一仗——冯官屯战役已经结束了。经过这场战斗,清军把北方的太平天国军队全部消灭,重新掌控了北方的中国,让那个眼看就要垮掉的大清王朝又有了新的活力。