麵對國民黨的軍事進攻,抗日根據地軍民在中共中央領導下,奮起反擊。陝甘寧邊區軍民克服國民黨軍封鎖的重重困難,繼續堅持抗戰;八路軍部隊嚴厲打擊進犯的國民黨軍,驅逐了綏德等5個縣的國民黨官吏,使陝甘寧邊區和晉西北根據地連成一片。晉西北的八路軍於1940年1月發起反攻,2月全部肅清該地區進犯的國民黨軍。晉東南新軍除決死三縱隊被反動軍官拉走外,其餘編入八路軍第一二九師和第一二。師。太南和太嶽區八路軍恢複了失去的部分地方。晉察冀部隊消滅了進犯閻北的閻錫山部隊一個師,將另一個師趕出該地區。在冀南豫北,八路軍第一二九師於1940年2月發起反擊戰,消滅石友三軍一部,將另一部逐出冀南。3月5日至8日,八路軍第一二九師主力及晉察冀軍區一部發起磁武涉林戰役,殲朱懷冰等部1萬餘人。山東根據地軍民在魯西和魯中進行反擊戰,殲滅石友三、沈鴻烈、秦啟榮軍各一部。至此,國民黨發動的第一次反共高潮被徹底打退。

在有力地打擊國民黨頑固派的軍事進攻後,中國共產黨以抗戰大局為重,主動停止戰鬥,釋放俘虜,並派代表先後同第二、第一戰區司令長官閻錫山、衛立煌進行談判,達成了劃定駐區、分區抗戰的協議:以臨(汾)屯(留)公路和長治、平順、磁縣為界,以南為國民黨軍駐區,以北為八路軍駐區;以汾河為晉東南和晉西南分界線,以汾陽經離石至軍渡公路為晉西北與晉西南分界線,晉西南為閻錫山軍活動地區,晉東南、晉西北為八路軍與新軍活動地區。

八路軍反"掃蕩"作戰抗日戰爭進入相持階段以後,日軍決定在華北進行大規模"掃蕩"作戰,以維持華北治安,確保主要交通線。為此,日軍抽調重兵,擴充漢奸武裝團體,並在1939年1月至1940年3月,連續發動三次"治安肅正"作戰,以達到徹底消滅敵後抗日根據地的目的。敵後抗日根據地軍民,在黨的領導下,展開了大規模的反"掃蕩"作戰。

在晉察冀邊區,1938年11月至1939年1月,日軍集中2萬餘兵力,從平漢、津浦線分兵多路,兩次圍攻冀中地區,占領大部分縣城。1939年1月下旬,賀龍、關向應率八路軍第一二○師主力馳援冀中,並組成以賀龍為書記的冀中軍政委員會和以賀龍為總指揮、關向應為政委的冀中總指揮部,統一領導反"掃蕩"作戰。4月23日至25日,第一二。師主力和三縱隊一部共7個團兵力,由賀龍指揮,在河間縣齊會村舉行齊會伏擊戰,殲敵700餘人,首次取得平原殲滅戰的勝利。第-一二○師在冀中區前後8個月,共進行大小戰鬥116次,殲敵4900餘人,部隊由6300餘人擴至1.9萬餘人。9月27至29日,由冀中轉移到北嶽區的第一二○師主力,在靈壽縣陳莊設伏,殲敵1200餘人,取得陳莊大捷。陳莊慘敗後,日軍於1939年10月糾集精兵2萬餘人對北嶽區發動大規模"掃蕩"。11月7日,八路軍在淶源附近黃土嶺設伏,殲日軍900餘人,號稱"名將之花"的日軍獨立混成第二旅團旅團長阿部規秀斃命,這是日本在侵華戰爭以來陣亡的最高將領。自10月至12月,八路軍作戰108次,殲敵3600餘人,徹底擊敗了日軍的這次"掃蕩"。在冀察熱地區,1939年1月成立了冀察熱挺進軍,統一指揮平西、冀東、平北地區武裝鬥爭。從2月至6月,粉碎日軍三次"掃蕩",殲日偽軍2000餘人,保衛和擴大了平西抗日根據地。到1940年,晉察冀邊區已發展到正太、石德路以北,張家口以南,山海關以西,同蒲路以東廣大地區,劃分為北嶽、冀中、平西、平北、冀東5個行政區。