临汾向有“尧都”之称,是晋南的军事战略要地,四周城墙又高又厚,护城河又宽又深,城内地势高,城外四周地势低,形似一头卧牛,易守难攻。明末农民起义军领袖李自成就曾因几攻临汾不下,反被射瞎一只眼睛,只得忿然而去。驻守临汾的总指挥梁培璜是第6集团军副总司令兼晋南总指挥、61军军长。他为加强防守,在原日伪城防工事的基础上,又劳民伤财,构筑了城外据点、环城据点,城壕工事、城墙火力网,城关和城内地道工事等多层防御工事,并在城内修筑了飞机场。
为了粉碎胡宗南空运临汾城内第30军至西安的计划,配合解放军在西北战场的作战,并彻底铲除胡、阎在晋南的这个毒瘤。1948年2月上旬,“前指”司令员徐向前在阳城召开有关党政军负责人联席会议,准备发动临汾战役。会上,不仅部署了临汾战役的后勤事宜,徐向前强调指出,前线的后勤工作要一直到打下太原,彻底摧毁阎锡山在山西的反动统治为止。而且调遣兵力,对战役进行了部署。2月20日,徐向前率“前指”到达翼城,统一指挥第8、13纵队,太岳军区第41、42、44、45、46、47、48、49团8个团,以及吕梁部队独3旅、独7旅。21日至23日,“前指”召开营以上干部大会,徐向前在进行动员报告的同时,还部署了临汾攻坚作战,决定以吕梁军区部队于洪洞、赵城汾河以西地区担任打援,以晋冀鲁豫军区野战军第8、13纵队和太岳军区部队由东、南、西三面攻城。战役决定于3月10日发起,但由于胡宗南的第30军开始空运西安,遂决定提前在3月7日发起临汾战役。
临汾之敌已被团团包围后,按照“前指”新的作战部署,太岳军区部队先从临汾城北关发起攻击,守敌经一番抵抗后,纷纷溃退,遁入城内。与此同时,第8纵队第23、24旅和第13纵队,向东关守军发起攻击。东关地居要冲,是临汾的主要屏障,虽然阎军第66师师长徐其昌亲带执法队督战,还亲手杀了1名团长,进行顽强抵抗,但在攻关部队的奋勇冲杀下,终于在4月11日晨攻占东关,守军66师大部被歼,徐其昌率少数残部逃入城内。此时,解放军已毙伤守军近万人,而自己也伤亡4300余人,可见战斗之激烈残酷。中央曾来电祝贺攻取临汾东关的胜利。
临汾东关失守,引起了蒋介石的不安,在正召开的国大上宣布:“要决心保卫临汾”。梁培璜则屡电阎锡山请求派兵支援。阎当时也无兵可派,即使有怕也难以抵达,只好一面打电报给梁,要他“人尽物尽,城存成功,城亡成仁”,一面派出61军副军长娄福生乘飞机前往临汾,传达他的旨意,要梁“依现有力量死守,不要希望援兵解围”。梁见援军无望,遂进行拼死抵抗。不仅向被解放军攻占之阵地反攻时,施放毒气,投掷燃烧弹,而且千方百计破坏解放军向城内挖掘之通道,或以炸药炸毁,或向坑道内施放毒气。蒋介石、阎锡山还分别从西安、太原、天津派轻、重轰炸机前来助战,轮流轰炸,形成了地面、地下、空中三位一体的“立体战”,双方胶着在一起,战斗异常激烈。其程度为解放战争以来所未有。
解放军战斗至5月10日,已伤亡9000至10000万人。第24旅旅长王墉也在战斗中牺牲。但部队情绪仍极高涨,徐向前更认为“不打下临汾,对不起人民”。他的决心,得到了军委和朱德总司令的支持。军委给徐总电示:“你坚决近迫作业,坑道爆破,并控制主力,决心长时间夺取临汾的计划是正确的……,为能有把握地攻下临汾,如必要可照预定日期再拖延若干时间”。朱德则写信给薄一波、滕代远:“应大力支持徐向前攻临汾,支持他一切。如炮弹、炸药、手榴弹之类,源源供给,撑他腰。鼓励攻临汾战士,一定能打下来,时间不限,再伤亡几千人,也在所不惜”(临汾地委党史研究室编印:《解放临汾各县纪实》第200页)。
5月15日,经过指战员们的奋勇拼搏,流血牺牲,在城东挖的两条各长100余米的破城大坑道,终于越过外壕,挖至又高又厚的古城墙底下。5月17日10时30分,开始总攻临汾,届时,一声巨响,东城墙被炸开了宽37米和39米的两个大豁口。攻城部队冒着浓烟飞尘,冲入城内,进行巷战。梁培璜见大势已去,急忙下令部队突围,然后随溃军连夜逃出西门,渡过汾河,第二天在姑射山吴家坡沟被吕梁部队捕获。徐其昌不久也在西山枕头垣一带被汾西大队查获。30军代军长谢锡昌率130多人逃到乡宁牛王庙西南沟村,亦被解放军堵截部队打垮,全部被擒。此外,还生俘阎、胡所部将校军官10余人。

