民国三十四年5月20日,经过三天的休整后,按计划美军一部开始向南推进,以切断日军首里防线。
5月21日,美军两个陆战师横跨整个岛屿到达东海岸的中城湾,占领岛中部地区,将日军防线一分为二。美军原计划十五天完成的任务,在志愿军的帮助下仅四天就顺利实现。
冲绳岛上的地面战斗因为志愿军的参与和消耗,在5月26日前,美军一直比较顺利,5月28日美军陆战一师和陆战六师攻占首里地区,将日军再次分割为南北两部分后,之后美军兵分两路,海军陆战队第三军向北逐步推进。
北面的第三军在到达冲绳岛颈部前,只遇到微弱的抵抗,直到5月30日才开始遇到日军顽强抵抗,至6月2日将北半部日军基本肃清,陆战一师到达有铭湾,陆战六师则到达最北面的边户崎。
牛岛原本在大本营的一再督促下,准备于6月5日发动对机场总反击,但在6月7日下午,发现那霸附近海面登陆的美军再次增兵,牛岛担心美军会从反击部队的侧后实施登陆,加上他本来对这次反击就不积极,正好以此为借口取消了反击,而将全部兵力用于依托工事进行坚守防御,给美军造成了很大困难。
6月10日日军先以敢死队员怀抱炸药采取自杀攻击方法炸毁美军坦克,再对失去坦克掩护的美军步兵发起冲锋,美军在日军冲击下,节节败退,死伤将近5000,全凭后续部队的重炮和海空优势火力才将日军攻势遏制。
6月12日,志愿军两个师在首里北约6.5公里处发动大规模进攻,五时四十分,重炮旅炮兵对日军阵地进行了长达四十分钟的炮击,共发射了1.9万发炮弹;接着美军和志愿军联合战队650架飞机也对日军阵地实施了航空火力准备,投下大量的炸弹和凝固**。
此时的战况就像是硫黄岛战斗和庆良间血战的重现,只是日军的兵力和要争夺的面积更多而已。
中美联军在推进至日军主要防线约4500米前,双方陷入僵持,巴克纳乘机调整部署,将北部的陆战一师和陆战六师调到南线,而将南线的第二十七师调到北半岛,接替两个陆战师的防务;文平也把攻占伊江岛的装甲旅调了上去,投入南线。
联军完成调整后,以四个师展开攻击,采取两翼包抄战术,迂回夹击日军主要防线,以加快作战进程。最后终于取得了进展,克服了日军的顽强抵抗,突破了牧港防线。
6月15日,牛岛见美军和志愿军步步进逼,为争取主动,一反其一直以来所坚持的坚守防御方针,发动了孤注一掷的总反攻,以部分兵力由驳船运送在美军战线后方海岸实施登陆,配合主力从正面发动的攻击,但由于得不到海空军的有力支援,登陆部队在航进途中被美军发现,随即遭到驱逐舰和地面炮火的轰击,还未上岸就被消灭了,正面主攻部队一离开坚固隐蔽的防御工事,立即遭到美军优势炮火的集中轰击,不到二十四小时反攻就被粉碎了。
牛岛这次反击得不偿失,损失了大量人员,消耗了大量的弹药,尤其是首里兵站被孤狼大队给炸毁了,消耗的弹药难以补充,使日军的弹药储备接近枯竭,牛岛不得不下令节省弹药,每门炮平均每天只有十发炮弹,严重影响了日后的作战。如果牛岛不实施这次反击,那么反击中损失的人员、弹药可以在坚守防御中坚持更多时间,给予美军和志愿军更大的杀伤。
最后经过合商由美军投入了新型的喷火坦克和重型坦克,冒着日军的枪林弹雨,碾压日军的战壕,冲入日军的阵地,喷火坦克将凝固汽油射入日军隐藏的山洞和坑道,日军终于支撑不住,其防线逐渐被突破,但牛岛随即在夜色和烟雾掩护下,悄然组织部队有序地撤往下一个防线,因此战斗发展成这样一种模式:日军先是凭险死守,接着美军和志愿军在猛烈火力支援下取得突破,日军后撤到下一道防线再死守,如此周而复始,日军防区逐渐缩小。
当天十八时四十分,日军运载“义烈空降队”的十二架飞机陆续起飞,途中有四架飞机因故障返航或迫降,另有四架飞机在接近冲绳岛时被美军击落,机上所载人员全部丧生,只有四架于二十二时抵达目的地,日机以机腹着陆方式在机场上降落,突击队员不等飞机完全停稳,就从机舱中跳下,向机场上停放的飞机投掷手榴弹和燃烧弹,顿时两处机场都燃起冲天大火,美军守备部队这才反应过来,急忙开火还击,经过短暂交战,在两处机场上降落的突击队员连同机组人员共56人,全被消灭,美军亡2人,伤18人,有七架飞机被击毁,二十六架飞机被击伤,还有七万余加仑的航空汽油被烧毁,损失巨大。
嘉手纳机场的大火到16日二十时才被扑灭,读谷机场上的大火更是燃烧了三天三夜,直到18日早上才被扑灭,这两机场也就因此瘫痪了近三天三夜,可惜16日和17日,天气不佳,日军无法利用空降分队创造的有利战机发动航空兵攻击,但日军在如此不利的战局下,特别是基本丧失制空权的情况下敢于实施这样一次敢死空降突击,完全出敌不意,取得了不小战果,其中的经验教训很值得研究。
6月18日,美军又投入预备队陆战二师,该师一个团在冲绳岛南端的喜屋武岬附近登陆,协同正面和侧翼友军围歼日军。此时日军的局势已十分被动,遭到全歼只是时间问题了,为了避免不必要的伤亡,巴克纳用