大口南部の薩軍を退けた川路少将率いる別働第三旅団は6月23日、宮之城に入り川内川の対岸および下流の薩軍を攻撃した。一斉突撃を受けた薩軍は激戦の末、遂に鹿児島街道に向かって退却した。別働第三旅団の部隊は翌24日には催馬楽に至り、次々に薩軍の堡塁を落として、夕方には悉く鹿児島に入り、鹿児島周辺の薩軍を撃退した。こうして官軍主力と鹿児島上陸軍の連絡がついた。
退却した薩軍は都城に集結していると予測した川村参軍は6月29日、別働第一旅団を海上から垂水・高須へ、第四旅団を吉田・蒲生へ、別働第三旅団を岡原・比志島経由で蒲生へ進め、都城を両面攻撃することとした。また海軍には重富沖から援護させ、鹿児島には第四旅団の1箇大隊を残した。
人吉方面撤退後の6月12日 、村田新八は都城に入り、人吉・鹿児島方面から退却してきた薩軍諸隊を集め、都城へ進撃する官軍に対する防備を固めた。薩軍の配置は戦闘によって大幅に入れ替わりがあるので確定しがたいが、北からほぼ以下のようになっていた。
最右翼(霧島山・高千穂北麓)
小林・高原方面 ─ 破竹隊など
右翼(霧島山・高千穂南麓)
財部・庄内方面 ─ 破竹隊など
中央
敷根・福山・清水方面 ─ 振武隊・奇兵隊など
左翼
岩川・末吉・大崎・百引方面 ─ 雷撃隊・行進隊など
対して、都城に攻め入ろうとする官軍の配置は北からほぼ以下のようになっていた。
左翼
小林・飯野 ─ 別働第二旅団一部・第二旅団
中央
庄内方面 ─ 第三旅団(国分本営)
庄内・福山の中間 ─ 別働第三旅団(国分本営)
福山方面 ─ 第四旅団(敷根本営)
右翼
岩川・末吉方面 ─ 別働第一旅団(高隈本営)
6月19日、河野主一郎は破竹隊を率いて別働第二旅団が守る飯野を21日まで猛撃して奪取をはかったが、官軍は善戦し、陥とすことは出来なかった。逆に横川から転進してきた第二旅団が7月14日、小林から高原を攻撃し高原を占領した。高原奪還を目指す薩軍は7月17日、堀与八郎を全軍指揮長とし雷撃隊・鵬翼隊・破竹隊などの9中隊を正面・左右翼・霞権現攻撃軍(鵬翼三番隊)の4つに分け、深夜に植松を発ち、正面・左右翼軍は暁霧に乗じて高原の官軍を奇襲し、あと一歩のところで奪還するところであったが、官軍の増援と弾薬の不足により兵を引き揚げた。一方、霞権現へ向かった鵬翼三番隊は奇襲に成功し、銃器・弾薬等の軍需品を得た。この戦い以降、官軍は警戒を強め、7月17日に堡塁や竹柵を築いて薩軍の奇襲に備えた。7月21日薩軍は再び高原を攻撃するため官軍を攻撃するが、官軍の強固な守備と援隊の投入により、高原奪還は果たせず、庄内へと退却した。
横川方面が官軍に制圧されてしまったため、7月1日、薩軍の雷撃隊六・八・十・十三番中隊、干城隊一・三・五・七・九番中隊、正義隊四番中隊等の諸隊は踊に退却し、陣をこの地に敷いた。官軍は7月6日、国分に進入して背後より踊の薩軍を攻撃し、薩軍は大窪に退却した。薩軍は襲山の桂坂・妻屋坂を守備すべく、干城隊七番中隊などを向かわせ、その他の諸隊に築塁の準備をさせたが、踊街道から官軍が進出しているとの情報を受け、正義隊四番・雷撃隊十三番・干城隊一番隊・雷撃隊八番隊がこれを防いだ。また、官軍は襲山街道からも攻めてきたため、干城隊三・七番隊、雷撃隊六番隊がこれを防いだが、決着はつかず両軍は兵を退いた。ここで官軍は第二旅団全軍をもって大窪の薩軍を攻めた。
7月12日、辺見は赤坂の官軍の牙城を攻撃するため、雷撃隊を率いて財部の大河内に進撃。この地は左右に山があり、中央に広野が広がっているという地形となっており、官軍はその地形に沿う形で陣を敷いていたため、薩軍は左右翼に分かれて山道から官軍を奇襲し優位に立ったが、雨が降り進退の自由を失い、あと一歩のところで兵を引き揚げた。
7月17日、辺見は奇兵隊を率いてきた別府九郎と本営の伝令使としてやってきた河野主一郎らと合流し、荒磯野の官軍を攻撃するため兵を本道・左右翼に分け、夜明けに高野を出発した。辺見らの諸隊は官軍に対し善戦するが、河野が本営に帰還するよう命じられたことによる右翼の指揮官の不在と官軍の援軍の参戦、弾薬の不足により、雷撃隊は高野へ、奇兵隊は庄内へとそれぞれ退却した。7月19日には都城危急の知らせにより高野の雷撃隊は庄内へ移動し守りを固めた。また辺見は7月23日の岩川攻撃作戦のために雷撃六番隊、干城七番を率いて岩川へ向かった。
第三旅団が7月10日、敷根・清水の両方面から永迫に進撃し、行進隊十二番中隊を攻撃したので、行進隊は通山へ退却した。一方、敷根・上段を守備していた行進隊八番中隊は、官軍の攻撃を受け、福原山へと退却した。行進隊八・十二番中隊は上段を奪回しようと官軍を攻撃するが、破ることができず、通山へ退却した。7月15日早朝、行進隊・奇兵隊は嘉例川街道を攻撃したが、官軍の守りは堅く、加治木隊指揮長越山休蔵が重傷を受けたため、攻撃を中止し通山へ退却した。
7月23日、官軍が岩川に進出したとの報を受け、高野から雷撃隊八・七番隊・干城隊七番隊を率いてきた辺見と合流し、辺見・相良を指揮長として岩川へ進撃し、官軍と交戦した。16時間にも及ぶ砲撃・銃撃戦であったが、結局、薩軍は官軍を破れず、末吉へと退却した。
7月7日、振武隊大隊長中島は国分より恒吉に到着した。このとき官軍は百引・市成に進駐していたので、この方面への攻撃を決定した。振武隊は夜に恒吉を出発し、8日に百引に到着した。ここで三方面から官軍を抜刀戦術で襲撃した。不意を突かれた官軍は二川・高隈方面まで敗走した。この戦いで薩軍の死傷者が8名ほどであったのに対し、官軍の死傷者は95名ほどで、そのうえ大砲2門・小銃48挺・弾薬など多数の軍需品を奪われた。
一方、越山・別府九郎ら率いる市成口牽制の奇兵隊・振武隊・加治木隊も8日に市成に到着した。越山らが兵を三方面に分けて進撃したのに対し、官軍は阜上からこれを砲撃し、戦闘が開始された。戦闘は激しいものとなり、夕方、官軍は民家に火を放ち、二川に退却した。薩軍も本営の指令で兵を恒吉に引き揚げ、振武十一番隊を編隊し直し、奇兵隊一・二番中隊とした。
大崎に屯集しているとの情報を得た先発の奇兵隊は7月11日、官軍を奇襲したが、二番隊長が戦死するほどの苦戦をした。そこで、勝敗が決しないうちに蓬原・井俣村に退却した。一方、後発の振武隊は進路を誤り、荒佐の官軍と遭遇し、半日に渡り交戦したが、結局大崎付近まで退却した。7月12日、蓬原・井俣村の奇兵隊は大崎に進撃したが、荒佐野の官軍はこの動きを察知し、大崎にて両軍が激突した。当初、戦況は薩軍にとって不利な方向に傾いていたが、大崎の振武隊と合流し、官軍に快勝した。しかし、末吉方面が危急の状態に陥ったので、この夜、村田新八は各隊に引き揚げて末吉に赴くように指示した。
都城への全面攻撃を始める前の7月21日、山県参軍・川村参軍・大山少将・三浦少将らは軍議して、以下のように進撃部署を定めた。
田野口・猪子石越・庄内方面 ─ 第三旅団
福山・通山方面 ─ 第四旅団
市成・岩川・末吉方面 ─ 別働第一旅団
正部谷・財部方面 ─ 別働第二旅団
霧島山麓方面 ─ 第二旅団の一部
別働第三旅団は7月24日、粟谷から財部に進撃し、指揮長不在の薩軍を攻撃して財部を占領した。続いて、退いた薩軍を追って、右翼を田野口・猪子石越から三木南・堤通に進め、本体・左翼を高野村街道から進めさせ、平原村で河野主一郎部隊の守備を突破し、庄内を占領した。薩軍が都城に退却したため、別働第三旅団はさらにこれを追撃して都城に侵入した。第四旅団は福山と都城街道・陣ヶ岳との二方面から通山を攻撃した。中島は振武隊を率いてこれを防ぎ、善戦したが、すでに都城入りしていた別働第三旅団により退路を阻まれて大打撃を受けた。その間に第四旅団は都城に入ることができた。別働第一旅団は岩川から末吉の雷撃隊(辺見)・行進隊(相良)と交戦し薩軍を敗走させ、都城に入った。
7月24日、要所である庄内方面・財部方面が官軍に占領された結果、都城の各方面で薩軍は総崩れとなり、この日官軍は都城を完全に占領した。これ以降、薩軍は官軍へ投降する将兵が相次ぐものの、活路を宮崎へと見出していこうとした。しかし、この守備に適した都城という拠点を官軍に奪取された時点で、戦局の逆転はほぼ絶望的となってしまった。
豊後・日向方面は4月末から5月末にかけて、野村忍介が率いる奇兵隊とそれを後方から指揮・支援する池上とその部隊の働きで薩軍の支配下におかれたが、官軍の6月からの本格的反撃で徐々に劣勢に追い込まれていった。薩軍は都城の陥落後、宮崎の戦い、美々津の戦、延岡の戦いと相次いで敗れて北走し、8月末には延岡北方の長井村に窮することとなった。