美軍推進至日軍主要防線約4500米前,雙方陷入僵持,巴克納乘機調整部署,將北部的陸戰一師和陸戰六師調到南線,而將南線的第二十七師調到北半島,接替兩個陸戰師的防務;攻占伊江島的第七十七師接替九十六師,投入南線;九十六師則休整十天,再替換第七師休整。美軍完成調整後,以四個師展開攻擊,採取兩翼包抄戰術,迂迴夾擊日軍主要防線,以加快作戰進程。
4月24日,美軍終於取得了進展,克服了日軍的頑強抵抗,突破了牧港防線。
5月4日,牛島見美軍步步進逼,為爭取主動,一反其一直以來所堅持的堅守防禦方針,發動了孤注一擲的總反攻,以部分兵力由駁船運送在美軍戰線後方海岸實施登陸,配合主力從正面發動的攻擊,但由於得不到海空軍的有力支援,登陸部隊在航進途中被美軍發現,隨即遭到驅逐艦和地面炮火的轟擊,還未上岸就被消滅了,正面主攻部隊一離開堅固隱蔽的防禦工事,立即遭到美軍優勢炮火的集中轟擊,不到二十四小時反攻就被粉碎了。牛島這次反擊得不償失,損失了大量人員,消耗了大量的彈藥,尤其是消耗的彈藥難以補充,使日軍的彈藥儲備接近枯竭,牛島不得不下令節省彈藥,每門炮平均每天只有十發炮彈,嚴重影響了日後的作戰。如果牛島不實施這次反擊,那麼反擊中損失的人員、彈藥可以在堅守防禦中堅持更多時間,給予美軍更大的殺傷。
5月8日,納粹德國宣布戰敗投降,沖繩海面的每一艘美軍軍艦向日軍陣地發射三發炮彈,以示祝賀。
美軍投入了新型的噴火坦克和重型坦克,冒著日軍的槍林彈雨,碾壓日軍的戰壕,沖入日軍的陣地,噴火坦克將凝固汽油射入日軍隱藏的山洞和坑道,日軍終於支撐不住,其防線逐漸被突破,但牛島隨即在夜色和煙霧掩護下,悄然組織部隊有序地撤往下一個防線,因此戰鬥發展成這樣一種模式:日軍先是憑險死守,接著美軍在猛烈火力支援下取得突破,日軍後撤到下一道防線再死守,如此周而復始,日軍防區逐漸縮小。
由於美軍占領了沖繩島上的嘉手納和讀谷兩處機場後,迅速進駐了大量戰鬥機部隊,並以該兩處機場為基地頻繁出擊,對日軍的神風特攻作戰威脅很大,日軍曾多次試圖組織反擊奪回機場,但或是因為情況變化中途取消,或是因為實力不濟反擊未果,最終日軍決定實施空降突擊,機降一支敢死空降分隊,破壞機場設施,摧毀機場上停放的飛機,然後利用空降突擊的戰果,發動一次航空兵的大規模攻擊。這次作戰由聯合艦隊司令豐田指揮,從陸軍傘兵第一旅抽調了120名精銳官兵組成空降分隊,由奧山少佐任分隊長,代號為&ldo;義烈空降隊&rdo;,由12架九七式轟炸機運送,作戰代號&ldo;義號作戰&rdo;。
5月19日,奧山和各小隊隊長以及飛行隊長討論了作戰方案,決定奧山指揮三個小隊搭乘八架飛機攻擊讀谷機場,渡邊大尉則率領兩個小隊搭乘四架飛機攻擊嘉手納機場,定於5月23日發起攻擊。由於天氣原因,推遲到5月24日。當天十八時四十分,運載&ldo;義烈空降隊&rdo;的十二架飛機陸續起飛,途中有四架飛機因故障返航或迫降,另有四架飛機在接近沖繩島時被美軍擊落,機上所載人員全部喪生,只有四架於二十二時抵達目的地,日機以機腹著陸方式在機場上降落,突擊隊員不等飛機完全停穩,就從機艙中跳下,向機場上停放的飛機投擲手榴彈和燃燒彈,頓時兩處機場都燃起沖天大火,美軍守備部隊這才反應過來,急忙開火還擊,經過短暫交戰,在兩處機場上降落的突擊隊員連同機組人員共56人,全被消滅,美軍亡2人,傷18人,有七架飛機被擊毀,二十六架飛機被擊傷,還有七萬餘加侖的航空汽油被燒毀,損失巨大。嘉手納機場的大火到26日二十時才被撲滅