部、李于九门、赵郡、沙河等地,连挫叛军。五月底,两军会战于嘉山,叛军大败,损兵折将4万余人,史思明赤足逃命。颜真卿等人与郭、李大军南北呼应。安禄山惊慌失措,欲退兵回保范阳天宝十五载(756)四月十一日,郭子仪和李光弼率唐军与叛军在九门县(河北城西北)城南,布阵交战。唐军中郎将浑碱于阵中射杀叛将李立节,挫敌气势,继而全军齐呼奋击,打败了叛军。史思明收集残兵逃向赵郡(河北赵县),惊魂难定,又从赵县北逃到博陵(河北定县),杀死归降唐军的郡官。蔡希德逃往巨鹿(河北巨鹿)。
河北地区百姓不堪忍受叛军的残暴统治,纷纷起兵反抗各郡县的武装力量多者上万人,少者也有几千人,各自为营,孤立作战。郭子仪和李光弼统率的大军一到,这些抵抗武装都自发前来投效助战。四月十七日。唐军围攻赵郡,激战一天,叛军举城投降。人城的唐军士卒抢掠财物,李光弼坐于城门之上,收缴了全部掠夺财物,归还给百姓。郭子仪下令处死伪太守郭献缪,其余4000名俘虏,全部予以遣散李光弼乘胜进兵,围攻博陵。叛军顽强固守,经10天攻击,未能克城。于是,李光弼下令撤兵回恒阳(河北曲阳),补充粮草。
五月十五日,郭子仪与李光弼率兵准备退回常山(河北正定)。史思明收集叛军散兵数万人尾随而来。朔方军多骑兵,惯于野战。郭子仪挑选出50名9勇骑卒,轮番诱敌,且战且退。3天之后,唐军退至行唐县(河北行唐)。叛军已疲惫不堪,无力再战,遂引兵后退。郭子仪乘势挥军出击,在沙河(河北行唐与新乐之间)击溃叛军再说蔡希德从巨鹿败逃回洛阳,安禄山闻报,担心后路再绝,又调拨给蔡希德2万人马去增援史思明。同时传令牛廷价调发范阳等郡士卒1万余人南下。这三支叛军共约5万人,其中有1/5是同罗部落兵和“曳落河”(壮士),即安禄山叛军中战斗力最强的王牌。
唐军于沙河败敌后,又回师抵达恒阳。史思明也率兵紧追而来。郭子仪避敌锋锐,深沟高垒,以逸待劳。叛军来攻,便坚守不出;叛军撤兵,则出城追击。白天在城上炫耀军威,夜间则袭击骚扰叛军营地,使之不得安宁。连续数天之后,郭子仪与李光弼商议认为:叛军已经疲劳,可以出战五月二十九日,两军在嘉山(河北曲阳东)布阵会战。由于朔方军的主力多是蕃、汉劲卒,特别是蕃族骑兵驯悍勇猛,擅长野战。更由于郭、李二人的指挥有方和唐军在数量上的优势,结果叛军遭到惨败,被斩杀者达4万人,被俘者1000余人,史思明在混战中跌落马下,发髻散乱,鞋子丢失,赤脚步行逃命,直到天黑时,才拄着折断的长枪回到军营。他未敢停留,立即乘马逃往博陵。
李光弼挥军再次进围博陵。郭子仪准备北上直捣范阳。唐军因嘉山获胜而声势大振,河北地区被叛军占领的十几个郡的唐官和民众,又纷纷杀死叛军守将,归顺朝廷。叛军的后方归路再次断绝,往来使者都是轻骑潜行通过,而多数还是被唐军俘获。凡是家在范阳的叛军将士,人心动摇,惶恐不安。
就在郭子仪与李光弼会师常山的同时,在河北道东南部,以颜真卿为盟主的抗敌力量,也展开了攻势。颜真卿命录事参军李择交,平原县(山东平原)令范冬馥会合清河(河北清河)、博平(山东在平西北)士卒5000人,自堂邑(山东聊城西北)向西南进发,攻克魏郡(河北大名)。北海(山东益都)太守贺兰进明也率兵5000人,北渡黄河,与颜真卿合兵,协力进攻信都(河北冀县)。魏郡和信都两郡光复,与郭、李二人在常山和博陵的攻势,形成南北呼应,相互支援态势。
史思明在河北一败再败,叛军在河南方面向江淮、江汉的进攻又无进展,安标山十分恐惧,臭骂高尚、严庄道:“你二人几年来总劝我反叛,认为一定能成功。现在大军西阻于撞关,几个月攻不破。北归的路又被郭子仪、李光弼切断。官军云集,我们占据的只有汁、郑等几个州那,如何能够取胜呢?你二人今后不要再来见我!”高尚和严庄害怕而沮丧,好些天不敢去见安标山叛将田乾真从撞关前线回到洛阳,知道此事后,劝说安禄山道:自古以来,凡是成就大事业的帝王,也都有胜有败,哪里能指望着一举成功呢!如今四面八方的唐军虽然很多,但都是新招募的乌合之众,没有打过仗,根本不能和我们这些久经沙场的精兵强将相比。您根本用不着担忧。高尚和严庄都是跟随您多年的元老之臣,就这样一下子把他们都抛弃掉,让其他将领知道了,大家都会心中恐惧的。如果内部分裂,上下离心,我担心陛下的处境可就真的是危险了1安禄山一听又高兴起来:阿浩(田乾真小名),你真能体谅我的心事。于是,下令传召高尚、严庄前来,设宴安慰,安禄山亲自唱歌劝酒,待之如初。
鉴于战场形势极为不利,安禄山准备放弃洛阳,率军回保范阳。就在他犹豫迟疑,尚未最后下定决心之际,渔关方面形势突变,使他绝路逢生,摆脱了暂时的困境。