石家庄扼平汉、正太、石德铁路,是华北地区重要的战略枢纽。1947年10月,石家庄之国民党第3军主力在清风店地区被晋察冀军区部队全歼后,驻守石家庄的国民党军只有第3军之第32师、2个保安团及周围19个县的保安大队,态势孤立。为了加强石家庄的守备,蒋介石于11月3、4两日,将保定“绥靖”公署1个独立团及1个野炮营空运至石家庄。晋察冀军区司令员兼政治委员聂荣臻决心乘石家庄守敌兵力空虚、军心不稳之际,集中晋察冀野战军全部及所属冀晋、冀中军区的部队发起石家庄战役。
战役的部署是:以晋察冀野战军第3、第4纵队分别从西南和东北两个方向实施主要突击;以冀晋军区独立第1、第2旅、第4军分区和冀中军区独立第7、第8旅、第11军分区的部队从西北和东南两个方向实施辅助进攻;以晋察冀野战军第2纵队、独立第9旅及第3、第9军分区的部队部署于定县、新乐之间,担任阻击由保定方向增援之敌;以察哈尔军区独立第4旅及第5、第7军分区的部队向平汉路北平(今北京)至保定段出击,重点破坏铁路线,配合主力部队作战。
为了更有力地打击石家庄守军,晋察冀野战军还将清风店战役中被俘的约1000名国民党军官经教育后释放回石家庄,以分化瓦解敌军。此外,晋察冀解放区政府调集1万副担架,4000余辆大车,10万民兵、民工随军作战。
11月5日夜晚,进攻各部队渡过滹沱河向石家庄开进,并突然包围了石家庄外围国民党军各据点。7日晨,冀晋军区独立第1、第2旅攻克了大郭村飞机场,歼灭守军1个营。8日晨,第4纵队攻占盘山,至此扫清了外市沟以外守军的全部据点。8日下午4时,在强大炮火的掩护下,晋察冀野战军以坑道爆破和强行爆破相结合的手段向外市沟国民党守军发起了总攻,至9日晨,晋察冀野战军攻占了除北焦、范村等4个据点外的全部据点。随后,晋察冀野战军以一部兵力围困上述4个据点,以主力继续向内市沟进攻。
10日下午4时,在炮兵火力猛烈轰击的掩护下,攻城突击部队同时实施内外爆破,并从被炸塌的壕沟冲入内市沟。第3纵队第8旅首先从西面突破成功,于下午6时攻占了东里村、西南兵营,歼灭守军第32师之第96团大部。第4纵队第10旅从东面突破后,连续击退第32师之第94团及坦克的7次反扑,巩固了突破口,并推进至铁路以东地区。冀晋、冀中军区的部队也相继占领了预定目标,进入了市内战斗。10日晚11时,全面突破内市沟后,各攻城部队适时将第二梯队投入战斗。至12日,守敌全部被歼,第32师师长兼石家庄警备司令刘英被俘。随后,冀中军区部队又乘胜攻占了元氏县城。
石家庄战役,共歼灭国民党军2.4万人,缴获坦克9辆,火炮100余门及大量机车、汽车和军用物资,此役不仅占领了敌华北的一个战略要点,使晋察冀晋冀鲁豫两大区连成一片,而且还首创了人民解放军夺取重要城市的先例,为尔后进行城市作战提供了重要经验。