百团大战经历了两个主动进攻和一个“反扫荡”阶段。
第一阶段从8月20日到9月10日,为时20天,中心任务是破坏日军交通,重点摧毁正太路。前10天,晋察冀军区、129师主要破击正太路。20日夜20时,八路军避开日外围据点直奔正太路主目标,同时向正太路全线突然发起奇袭,日军措手不及,全线被动。
八路军提出“不留一根铁轨、不留一根枕木、不留一个车站、不留一个碉堡、不留一座桥梁”的口号,“让敌人用脚同我们赛跑”,“让敌人用牛驴搬炮弹、飞机大炮”。八路军展开攻坚战,端掉敌一系列据点。每攻克一处,便使用各种可能的办法,如爆破、火烧、搬拆、水淹等,将之彻底破坏。如敌之重要燃料基地井阱煤矿,八路军将在之破坏无余,使其半年内不能恢复生产。日军遭受沉痛打击,竟然向我军施放毒气。这一阶段作战,使日军正太路大部被破坏,交通完全中断。
后10天,回过神来的日军立即组织部队增援,进行反扑。八路军则一边相机继续破击正太路,一边主力机动灵活地从内线转移到敌之外线,撤出正太路打击增援日军。在正太路作战的同时,120师在晋西北以破击同蒲路为中心配合作战,在晋西北广泛破击同蒲路及周边主要公路,一度切断了同蒲路北段及几条重要公路日交通线,牵制了大量日军使其难以增援正太路,有力支援了正太路作战。
第二阶段:从9月22日到10月上旬。目的是扩大战果,基本方针是继续破坏敌人交通,摧毁深入根据地的某些据点。不过,日军受第一阶段打击的教训,加强了据点的守备,提高了警惕,并继续进行毒气战。同时,日军大量调动、集结,八路军总部判断日军将对我根据地反扑扫荡,遂主动停止对日军的进攻,部署反“扫荡”作战。
第三阶段:从10月6日到翌年1月24日。