八路军取得平型关大捷之后,日军在9月29日攻克铁角岭和繁峙,切断了平型关中国守军的退路。第二天,中国守军放弃平型关,向代县、雁门关和阳方口转移。
寺内寿一的华北方面军,奉命派一部分兵力在山西省北部作战,并占领太原;关东军奉命调派部队由华北方面军指挥,并为作战提供方便。日军以板垣师团为主力在代县集结。
中国军队决定在太原抵抗日军,共产党和国民党都做了周密的部署。当时,朱德、周恩来和彭德怀都在山西。
阎锡山为了据守太原,决心集中主力在忻口要隘阻挡日军南下。周恩来参加了忻口战役的作战研究,还实际考察战地情况。他提出,正面堵截日军损失必大,不如加强侧面部署,主动出击。阎锡山部分采纳了这些建议。
太原以北的忻口,是一个战略要地。忻县、崞县和定襄在这里交会,东边傍着五台山,西边靠着云中山,沱河与滹河穿流而过,河岸是纵贯南北的同蒲铁路和公路。
国民政府任命第二战区副司令长官卫立煌为前敌总指挥,统率刘茂恩的右翼兵团三个军,郝梦龄的中央兵团四个军,以及李默庵的左翼兵团一个军和四个师,在忻口以北的龙王堂到南峪一线布防。
10月1日,一千多名日军在阳明堡与王靖国第十九军的部队发生激战,攻占了阳明堡。第二天,日军在飞机和大炮配合下进攻崞县。两天后,关东军筱原诚一郎的混成第十五旅团从崞县以西迂回,向原平镇猛攻。
这时,卫立煌的部队从石家庄调来,还没有赶到,从五台山向忻口转移的晋绥军,两天后才能到达,形势异常危急。为了主力部队有充裕的时间集结到忻口与日军决战,第二战区长官部下令死守崞县和原平,等待后续部队到达。日军连续两天用炮火猛轰崞县的守军,王靖国军第四○七团伤亡极为惨重,阵地几乎全被炸毁。
6日,周恩来在太原收到毛泽东的电报,要他转告阎锡山等人:日军占领石家庄后,必向山西进攻,故龙泉关、娘子关两点须集结重兵,以利在太原以北大量歼敌。
7日,围攻崞县的日军增加到五六千人,出动二十多架飞机,动用三十多门野重炮,对县城狂轰滥炸六个小时,摧毁了北城墙,守军第四十一团伤亡殆尽,日军乘机突入。东西城墙守军奋勇夹击,与日军展开巷战肉搏。入夜,守军各级军官率领部队堵击日军,但日军的进攻有增无减,局势无法挽回。第二天,王靖国不得不率余部突围,崞县陷落。
原平镇这边,由姜玉贞的第一九六旅防守。第二战区长官部命令姜玉贞“虽剩一兵一卒,也得在原平死守七天”。他的部队从代县向原平转移途中,日军已在背后追赶了。距原平还有十公里,就与筱原旅团接火,且战且退。
到达原平镇外,姜玉贞命令部队构筑工事,死守铁路和公路。日军很快就发起猛攻。姜玉贞来到前线,指挥部队打退日军多次进攻。姜玉贞旅伤亡日益增多,阵地逐渐缩小,日军形成对原平的包围态势,姜玉贞只得率部退入城内。
第七天到了,日军从城东北角突入,占领城的东半部,与守军隔街相抗。姜玉贞已经完成了任务,但又接到新的命令,要他再守三天。他当即表示:“誓死抗战,无令不离斯土。”
10月8日,崞县失守,大量日军围援原平,攻占了城西北部。这时,姜玉贞的五千人只剩下两三百人,被围困在城东北角。将士们毫无惧色,与日军展开巷战,短兵相接,争夺每一个院落。部队坚持到10日子夜,完成了守城任务。姜玉贞率领余部突围,在城外被日军炮弹击中,以身殉国。
姜玉贞旅与日军血战十天,从旅长以下,几乎全部牺牲。
正面防御战打得激烈的时候,八路军从东、西两面迂回,破坏日军侧后纵深的交通线,使日军前线不能及时得到粮食和弹药,不得不调回相当兵力守备后方。
贺龙率第一二○师深入到大同附近时,发现日军每天从大同不断往前线运送弹药,又往大同拉回伤兵和尸体,异常繁忙。这一来一去,必须经过雁门关。贺龙派贺炳炎和廖汉生率领第七一六团日夜兼程赶向雁门关,寻找机会打击日军。
宋时轮率领雁北支队开拔,趁黑夜赶到平鲁、右干和大同之间的敌占区。贺炳炎团其他部队经过三天急行军,到达雁门关西南几公里处的老窝村。第二天拂晓,部队查探了地形,决定派第一营和第三营分别埋伏在陡坡南北,由第一营派出一个连向阳明堡方向警戒,第三营第十一连埋伏在西面,截断日军后路。全团突然攻击,力求把日军全部消灭在黑石头沟内。
雁门关是山西内长城要隘,也是沟通雁北高原与晋中腹地的门户,为历代戍守要地,民间流传的杨家将故事,就发生在这里。日军和国民党军队几次交战后,自以为这一带中国军队早已败退一空,因此警戒疏忽,横行无忌。
18日拂晓,鸡叫头遍,八路军沿着崎岖的山路,埋伏在黑石头沟附近。天微亮时,日军三百多辆汽车,在步兵队护卫下,朝雁门关鱼贯驶来,这是日军将原平前