在全面进攻解放区受挫后,国军改变策略,在晋冀鲁豫、晋察冀、东北等战场上取守势,将主要兵力集中用来进攻陕北和山东解放区,并为此调动了70万大军,包括海军主力和空军。同时,为防止晋冀鲁豫野战军渡河支援山东,国军还在花园口将黄河合拢回归故道,构成从风陵渡到济南约千里的“黄河防线”。为应对国军的重点进攻,中共方面决定继续执行积极防御的战略方针,力求在内线歼敌,并为此要求陕北、山东解放军诱敌深入,集中优势兵力,各个歼灭进犯之敌,还下令其它战场上的解放军根据具体情况,进行战略性反攻。
1947年2月28日,蒋介石电召胡宗南,部署进攻延安。3月4日,胡宗南被任命为西安绥靖公署主任,并于11日在洛川召开军事会议,决定采取钳形攻势围歼陕北解放军。此时,国府部署在陕甘宁解放区的军队包括胡宗南、马步芳、马鸿逵等部共34个旅25万人。3月13日,国军胡宗南部从南线的洛川、宜川地区分两路向延安主攻,青海马步芳、宁夏马鸿逵和榆林邓宝珊的部队则分别在西、北两线进行配合,空军也派出了100余架飞机。当时,中共在陕甘宁只有驻有2.5万部队,与国军差距悬殊,但毛泽东却坚持不从其它战场抽兵回援。最后,中共中央军委决定,暂时放弃延安,并将陕甘宁和晋绥解放区的解放军改编成西北野战军,由彭德怀指挥,依托已有的两道防御阵地,在延安以南临真镇、金盆湾、茶坊一线阻击国军,掩护中共机关和解放军总部的转移,同时诱敌深入,将胡宗南的部队拖在陕北。
3月18日下午,毛泽东和中共中央机关撤离延安,几小时后,胡宗南即率军开进,并于19日占领延安。随后,胡宗南急于寻找解放军主力决战,并派兵分别扑向安塞和青化砭。当时,西北野战军主力集结于延安东北的甘谷驿、何家山岔和青化砭一带,安塞只是佯动方向,因此国军于3月24日顺利占领之。3月25日,国军31旅进入解放军设于青化砭的伏击圈,遭到解放军拦头断尾、两翼夹击,首尾不能相顾,最终被全歼,正副旅长全部被俘,而西北野战军则在青化砭首战告捷。
青化砭战役后,西北野战军迅速转移到蟠龙西北地区休整,而胡宗南在发现共军主力在延安东北地区后,也立即下令整编第一军和整编29军掉头向东,分两路向延川、清涧地区进犯。3月底,国军占领延川和清涧,但却没能找到共军主力决战;4月初,国军又在瓦窑堡扑空,且已兵疲粮缺,不得已于4月6日南下蟠龙地区集结。4月13日,国军主力9个旅开始向蟠龙和青化砭西北地区进犯,14日在三郎岔、李家滴哨附近遭西北野战军堵截,且战且走,最后被围困在羊马河以北的东山和西山两处高地。接着,解放军采取分割手段,先攻东山,后克西山,全歼国军一个整旅,取得羊马河战役的胜利。
4月15日,毛泽东提出了西北战场的“蘑菇”战术,指示解放军与国军在现地区再周旋一个月左右。4月下旬,西北野战军主力集结于清涧、瓦窑堡地区休整,国军统帅部误以为共军主力已向绥德集中并开始东渡黄河,因此下令胡宗南于4月26日自蟠龙、永坪向绥德急进,并以榆林邓宝珊部南下配合。此时,西北野战军一方面对国军节节抗击,诱其主力北上,一方面在黄河沿岸布置渡河假象,迷惑国军。5月2日,国军主力进抵绥德,共军则在同日黄昏突袭了国军的后方重要补给基地蟠龙。至5月4日夜,共军全歼国军守军,缴获大批粮食和军用物资,取得蟠龙战役的胜利。同日,胡宗南急令国军主力回援蟠龙,至5月9日赶到时,共军已转移到安塞地区休整,国军两头扑空。
蟠龙大捷后,国军集聚一团,共军一时难以找到各个击破的战机,于是决定出兵陇东,打击马步芳、马鸿逵的势力,然后再相机南下关中或北上三边,调动胡宗南主力,寻机歼灭之。5月21日,西北野战军分三路由安塞西向陇东出击,右路军一举攻克蒋台,全歼国军一个团。接着,中路军攻占悦乐,左路军在合水亦给守军以很大杀伤,并击溃了由庆阳出援的国军82师。6月13日,共军将马鸿逵的一个师包围于环县,15日,经一夜激战,攻占了主阵地王家原和玉皇山。6月16日,守军丢弃重武器向北突围,西北野战军乘胜追击,大获全胜。6月底,西北野战军挥师北上,收复了陕甘宁西北边陲的三边地区,至7月7日取得了陇东战役的胜利。
1947年7、8月间,解放军已经由战略防御转入战略进攻,为了策应晋冀鲁豫野战军跃进大别山夺取中原的战略计划,毛泽东于7月下旬指示西北野战军向北出击榆林,调动国军胡宗南部北上长城沙漠边,并相机夺取敌榆林战略要点。7月底,西北野战军沿大、小理河向榆林进发,8月初向榆林守军外围据点发动进攻,迅速扫除了高家堡、响水堡等守敌据点,直逼榆林城下。8月6日,蒋介石飞抵延安,向胡宗南面授机宜,指示将共军压缩于米脂、佳县黄河边,迫其背水一战或东渡黄河,以收东渡而击之效果。随后,胡宗南急调6万大军分两路增援榆林,一路沿咸榆公路两侧北上,8月15日抵达绥德,另一路经吴旗、志丹、横山走长城沙漠地带兼程驰援。鉴于调敌北上的目的已经达成,8月12日,西北野战军主动撤围榆林,南下米脂县沙家店西北地区待机歼敌,并制造东渡假象迷惑敌人。这时,蒋介石和胡宗南误以为解放军要东渡黄河,于是下令军队“迅速追击,勿失此千载良机”。不久,国军两路并进向东封锁了黄河,向西控制了咸榆公路,中共中央机关和西北野战军被挤在佳县,米脂、榆林三县交界的狭小地区,背靠沙漠,侧水侧敌,处境十分险恶。
8月17日,国军一个旅和一个团由镇川堡东向乌龙铺孤军冒进,20日拂晓在沙家店遭到西北野战军主力伏击,很快即被共军分割包围。8月20日下午,西北野战军发起总攻,国军全线战败,师部和两个旅遭到全歼,旅长被生擒。在取得沙家店战役的胜利后,中共军队彻底结束了国军对陕北地区的重点进攻,改变了西北战局,西北野战军也从此由内线防御转入内线反攻。8月22日,中共陈赓、谢富治的太岳兵团从晋南渡过黄河,进入豫西,直接威胁胡宗南的大本营关中,胡宗南急忙收拾残部于27日南撤,解放军乘胜兵分三路向南追击,于9月1日在清涧城北的九里山截歼敌一部,9月14日又在岔口一带设伏,击溃国军两个军,并以锐不可当之势,直抵延安近郊。
另一方面,1947年3月,国府调集了24个整编师、60个旅,共约45万人,组成3个兵团,由陆军总司令顾祝同坐镇徐州指挥,采取加强纵深��%8