淶源、靈丘及其附近地區,駐有日軍獨立混成第2旅團和日軍第26師團。獨立混成第2旅團司令部駐在張家口,步兵第4大隊駐在渾源地區,步兵第3大隊駐在蔚縣、溥鹿地區,步兵第2大隊駐在懷淶、延慶地區。日軍第26師團是三單位製的乙種師團,師團司令部駐在大同,第2大隊駐在靈丘地區,第1大隊駐在淶源地區,第3大隊駐在應縣地區。這兩部分日軍共約1500人。另有偽軍1000多人。
晉察冀軍區根據八路軍總部的命令,集中8個團、3個遊擊大隊、2個獨立營,組成左翼隊、右翼隊和預備隊。其兵力組成和任務區分是:
右翼隊由第1、第2、第3、第20、第25團,遊擊第1、第3支隊,第1軍分區特務營,軍區騎兵第1團1個營等部隊組成,總兵力約1.5萬人,由楊成武將軍指揮,重點攻擊淶源縣城及其附近的日偽軍據點,打敵增援,同時要協助左翼隊相機奪取靈丘。
左翼隊由第6、第26團,察綏遊擊支隊組成,總兵力約5000人,戰役初期的主要任務是阻敵增援,爾後同右翼隊配合,奪取靈丘及其附近的日偽軍據點。
總預備隊由一個步兵團擔任。
此外,對冀晉察挺進軍、第2軍分區第4團、冀中軍區等部隊,都明確了相應的任務。
9月22日22時,兩顆紅色信號彈騰空而起,攻城戰鬥開始了。
右翼隊向據守淶源城及其周圍據點的日偽軍發起攻擊。戰鬥越來越激烈,天明時分,八路軍已經奪占了淶源城的東關、西關和南關以及2個外圍據點,日軍被迫退入城內。八路軍指戰員原想一鼓作氣攻下淶源城,再殲滅外圍的日偽軍據點,但是,這個目的未能如願實現。
淶源縣城麵積小,方圓不到2公裏,但城牆位於高坡之上,是用巨大的條石建造的,高而堅固,城關地勢低窪。多年來,日偽軍不斷加固城牆,全城就像一座大碉堡,攻城等於是破碉堡。晉察冀軍區的攻城部隊雖然在兵力上占有絕對優勢,但是由於部隊缺乏攻城的有效器材,加之日軍頑強抵抗,部隊激戰一晝夜,未能將城攻克。9月23日,晉察冀軍區首長決定,先拔除淶源外圍的日偽軍據點,再攻克淶源。
第一個要拔除的外圍據點是三甲村。三甲村位於淶源城東10公裏,是淶源至易縣公路上日軍的一個重要據點。9月23日夜晚,第2團指戰員在第1團1個營以及炮兵的配合下,向三甲村發起猛烈攻擊,殲滅了三甲村據點的日偽軍。
另一個要拔除的外圍據點是東團堡。東團堡距淶源城25公裏,是淶源東北日偽軍的一個重要據點。東團堡築有環形防禦工事,有日軍第2混成旅的1個教導隊共130多人防守,這些日軍全部是從各部隊挑選來的士官,經過嚴格訓練,武器精良,戰鬥力比較強。據點內的翻譯官金井,是朝鮮人,他在我地下工作者的多次勸說下,對抗日鬥爭曾表示同情。晉察冀軍區第3團的指戰員向東團堡據點發起攻擊以後,日軍不僅以猛烈的火力還擊,還不斷施放毒劑,給攻城的八路軍帶來嚴重威脅。八路軍指戰員發揮勇敢戰鬥的精神,組織力量,加強戰鬥動員,連續攻擊東團堡守敵。
9月24日,戰鬥更加激烈。傍晚,八路軍攻下了東團堡周圍的全部堡壘,日軍被迫退到村中,憑借數間房屋繼續抵抗。
9月25日,東團堡的日軍自知難以固守,即把庫存的武器、彈藥、糧食等作戰物資全部燒毀,準備突圍。就在這時,八路軍指戰員抓住日軍無心防守的心理弱點,發起猛烈攻擊,將日軍大部分殲滅。少數日軍看到無法突圍,竟然向自己點燃的熊熊烈火中奔去,以自焚結束了侵略者的一生。
東團堡殲滅戰,打擊了日軍的銳氣,振奮了八路軍的雄風。
至9月26日,右翼隊的其他部隊相繼攻克了桃花堡、吉家莊、白石口、王喜洞、張家峪等13處日偽軍據點,集中力量攻克淶源的時機成熟了。
9月27日,右翼隊集中兵力猛攻插箭樓。插箭樓位於淶源城南15公裏處,有日軍1個中隊守衛。攻擊發起後,八路軍指戰員很快摧毀了多處碉堡,擊斃了大部分日偽軍。右翼隊拔除了淶源外圍的幾個重要據點,準備再攻淶源的時候,敵情發生了重大變化。
駐守淶源的日軍遭到晉察冀軍區的部隊攻擊以後,立即向駐在張家口的日軍求援。9月23日,3000多日軍搭乘汽車,在20輛坦克、4架飛機的掩護下,從張家口方向出發,南下增援。24日,日軍獨立第2混成旅團旅團長人見與一中將率領部隊從蔚縣出發,南下增援。由於道路被抗日軍民破壞,沿途又不斷遭到抗日武裝的襲擾,日軍行動遲緩。蔚縣至淶源的80公裏路程,日軍車隊艱難地行使了5天,平均每天隻行進16公裏。在戰爭中,人民群眾一旦動員起來,日軍就寸步難行,人民戰爭的威力是無窮的。
28日中午,3000多日軍才進抵淶源縣城。