10月初,日本军部正式向华北方面军发布攻取太原的命令。以坂垣征四郎统率第五师团及关东军察哈尔派遣兵团之大部为北路,沿同蒲线,越内长城直取太原,为主攻方向;以川岸文三郎率第二十师团之一部为东路,由石家庄沿正太线西进,策应第五师团,以实施两路分进合击太原之战略意图。
9月下旬,雁门关至平型关内长城线中国守军激战数日重创侵华日军后,于10月1日全线撤退。敌从茹越口突入,进占繁峙后,集结于代县附近,准备攻打忻口,攻取太原。忻口是晋北通向太原的门户,是保卫太原的最后一道防线。忻口地势险要,右托五台山,左依云中山,两山之间一片河谷。河谷中间矗立一数十米的土山,筑有半永久性的工事。中国军队在忻口集中八万兵力,计划乘敌立足未稳,将坂垣师团消灭于云中河谷。为确保山西要地,蒋介石令卫立煌率第十四集团军四个半师从河北星夜驰援忻口,任卫立煌为前敌总指挥,组织忻口会战。忻口方面作战的是第十八、第十四、第六、第七集团军,战区计划以三个集团军在五台山至宁武山一线,依托有利地形组织防御。其部署:朱德率第十八集团军为右翼,在滹沱河东岸依托五台山组织防御,制止日军前进,并相机以主力挺进雁门关,威胁敌之左翼,形成包围日军之态势;卫立煌率第十四集团军居中央,在代县至原平公路正面实施防御,抗击日军进攻;杨爱源率第六集团军为左翼,在同蒲路西侧组织防御,并准备以一部兵力挺进敌后,威胁敌右翼,与右翼军东西呼应;由傅作义率第七集团军为预备队,集结在忻县、定襄一带,相机行动。10月1日,华北日军主力坂垣第五师团及关东军察哈尔派遣兵团第一、第二、第十五混成旅团与特种部队等共三万余人,沿代县至原平公路发起进攻,忻口战役序幕拉开。日军以正面进攻结合迂回,在猛烈的炮火、坦克和飞机支援下攻打崞县、原平。守军第十九军主力奋勇阻击直至白刃鏖战,坚守一周,战斗十分惨烈。驻守崞县西关独立第七旅与延守部一个团全部殉国,团长刘连相、石焕然在战斗中阵亡。崞县陷落。9日,敌又大举围攻原平。我一九六旅全体官兵与入城之敌浴血巷战三天,最后旅长姜玉贞率二百余仅存官兵退守城东北角,与敌苦战肉搏,于11日全部阵亡。日军占领原平后,以第十五混成旅团、堤支队等为右翼,第五师团主力为左翼,沿同蒲路左侧向忻口猛攻。是时,卫立煌率援军第十四集团军从平汉线到达忻口后,立即布署兵力,以刘茂恩指挥右翼兵团,以郝梦龄指挥中央兵团,以李默庵指挥左翼兵团。主力在忻口以北龙王堂、界河铺、南怀化、大白水、南峪之线展开。从10月13日起,激战开始。13日拂晓,敌以飞机、重炮、战车掩护步兵五千人连续猛攻忻口西北侧南怀化阵地,守军阵地被突破。守军以炮兵协同步兵作战,肉搏冲锋,顽强抗击。激战竟日,阵地终被收复。次日敌增兵,攻击愈烈,一开始即成胶着状态。15日,中路守军展开攻势行动,正面出击,阻止敌主力从南怀化突袭忻口的企图。在红沟西北、官村以南高地,第九军军长郝梦龄、第五十四师师长刘家麒、独立第五旅旅长郑廷珍到前沿阵地奋勇督战,相继中弹,壮烈牺牲。师长李仙洲,旅长于镇河、董其武火线负伤。陈长捷接郝梦龄任中路前敌总指挥。敌我于南怀化、红沟谷地间往复拉锯战,阵地失而复得。敌主攻方向一直指向中路,不断从南怀化投入兵力,以期直贯忻口。敌对谷地冲击未能得逞,转而争夺官村以南高地。在二○四高地和横山阵地,两军反复争夺,数日间几易其手。到10月22日,进入南怀化之敌已三易联队。为突破僵局,日本华北方面军司令官寺内寿一急调萱岛支队等增援忻口,并亲临督战,于24日再次发起猛攻。敌久攻不下,遂采用毒瓦斯、烧夷弹助攻,致使守军阵地一片火海。敌复以坑道攻击法逐步进逼。守军则向敌壕一侧掘进坑道或窄壕,实行对壕互轰,展开地下战。我守军官兵冒着烈火和毒气拚死战斗,双方损失严重,每日伤亡均以千计。如此对阵相抗达半月之久。在忻口正面顽强抗击的同时,八路军一方面将主力第一一五、一二○师深入敌军两翼及侧后,向灵丘、广灵、代县、崞县、雁门关敌后进军,开展游击战争,袭击敌人的后方,破坏敌人交通运输,切断敌人的补给和增援,进行战役配合;一方面用部分兵力直接袭扰敌人第一线攻击兵力,同友军密切战术协同。如10月19日夜,刘伯承第一二九师第七六九团以一个营的兵力夜袭代县西南的阳明堡机场,毁伤敌机二十架,歼日军百余人。这一壮举,有力地削弱了敌空中攻击力量,援助了忻口友军正面作战。卫立煌在忻口会战后不久曾盛赞“八路军确实是抗日的,是夏兴民族的最精锐的部队”,“象阳明堡的烧毁敌人的大批飞机,截断平型关、雁门关,使敌人不能得到接济补充,对于忻口战争有极大的帮助”。在忻口战场鏖战方酣时,沿平汉线南犯之日军于10月10日夺取石家庄后,以第二十师团之一部向娘子关进攻,以配合同蒲路方向之敌会攻太原。第二战区令黄绍竑指挥正太路防御战。这一线中国守军因防御阵地在敌空军、炮兵、步兵火力联合突出下接连失陷,从井陉、娘子关、平定、阳泉、寿阳一路溃退下来。10月底,日军逼近榆次。八路军总部率第一二九、一一五师主力于10月下旬由五台山进至正太线以南,多次进行伏击,屡挫日军锋芒。
10月底,忻口战场局势恶化。第十四集团军赶来晋北,连续冲杀,战斗力渐不能支。加之,晋东告急,太原告警,第二战区遂作出新的部署。此时,战区司令傅作义回太原组织城防,令杨爱源去晋南组织防御,卫立煌下令部队停止反击,请求增兵。11月2日夜,奉令撤离忻口阵地,向太原撤退。11月8日夜,太原城北为日军突入,经过激烈巷战,傅作义率守军二千余人向西山突围,太原失守。
这次会战虽然中国方面失利,付出了重大牺牲,但是中国守军英勇抵抗,从而消耗了大量敌军,争取了时间。这一战役破坏了日军的河北平原会战计划,使平汉线中国军队得以南撤。
太原失守后,在华北战场的正规战争便基本结束,而由敌后游击战争支撑着华北的抗战局面。
八路军政治部主任任弼时在当年撰写的《山西抗战回忆》一文中,曾高度评价了忻口战役的功绩。他说:“敌曾以全力猛攻忻口,遭受了忻口抗战部队的猛烈的袭击。忻口战争是华北抗战中最激烈的战争,郝、刘两将军在前线同时作了壮烈的牺牲,卫立煌将军指挥下的全线部队,虽遭受了重大伤亡,毫未动摇;许多忠勇将士的英勇奋斗,是值得每个同胞永远纪念的。”