9·28 서울 수복은 인천상륙작전 직후 9월 18일부터 28일까지 한국해병대, 국군 제17연대, 미 제1해병사단, 미 제7사단이 서울을 회복한 작전이다. 이 작전은 한미연합군이 북한에 빼앗긴 서울을 탈환하기 위해 진행하였다. 가장 먼저 김포비행장을 장악하고 퇴각하는 북한군을 소탕해 갔다. 이후 영등포를 탈환하고 한강을 건넜다. 연희동, 마포, 남산 3개 방면에서 서울로 진출하여 시가전을 치른 끝에 9월 28일 서울을 탈환하였다. 북한군의 사기를 저하시키고 북쪽으로 철수하게 하는 등 전쟁의 국면을 전격적으로 전환시킨 작전이었다.
9월 16일 서울탈환작전으로 전환한 미 제10군단은 연희동 방면, 마포 방면, 남산 방면 등 3개 방면에서 서울로 진출하여 시가전을 치른 끝에 9월 28일 서울을 완전 탈환하였다.
서울을 향하여 해안교두보를 넘어서는 한미 해병부대들 앞에는 중간목표로서 장악해야 할 김포비행장과 영등포, 그리고 장애물로서 극복해야 할 한강 등 많은 난관이 가로 놓여 있었다. 그 중에서도 가장 우선적인 목표는 김포비행장의 조기 확보였으며, 아울러 영등포 탈취를 위해 경인국도가 중요한 공격선으로 설정되었다. 미 해병사단은 예하 미 제5해병연대(한국해병대 포함)에 김포비행장을, 미 제1해병연대에 영등포 지역을 각각 공격목표로 설정하였다.
9월 16일 밤 미 해병대는 부평을 내려다 볼 수 있는 고지까지 진출하여 부평지역의 경인가도를 통제하게 되었다. 미 제5해병연대는 9월 17일 김포비행장 탈환을 위해 진출하였다. 당시 김포공항에는 북한군 제877항공대 소속 공항경비대대, 제226연대 및 제107연대 병력 등 약 400여 명이 방어하고 있었다. 미 해병대는 저항하는 중대규모의 적을 소탕한 끝에 9월 18일 김포비행장을 완전히 장악하였다. 이는 서울 공격을 위한 공군력을 전개하는데 있어 매우 중요할 뿐만 아니라 주변 일대의 적을 격퇴하는데 매우 긴요한 기지였다.
한편 한국해병대는 9월 17일 새로운 작전임무를 부여받았다. 한국해병대는 미 제5해병연대와 같이 인천 시내 전투를 마치고 경인가도를 따라 진격하여 부평을 점령한 다음 계속 퇴각하는 적을 추격하였다. 북한군 패잔병들이 도주한 상황이기 때문에 김포 일대가 적의 위협에 노출되어 있었고 특히 김포비행장에 대한 엄호가 필요하게 되었다. 한국 해병 제3대대는 9월 18일 독립적으로 김포와 부평간의 모든 지역을 정비하고 잔적을 색출 격멸하는 임무를 맡았다. 한국 해병대는 9월 21일까지 김포반도의 적 주력부대를 거의 소탕하여 1단계 작전을 완료하였다. 이어 제3대대는 2단계 작전에 따라 김포읍 이북에서부터 한강 연안지역, 그리고 강화도에 이르기까지 평정과 잔적 소탕을 담당하였다.
미 제1해병연대는 영등포 진입으로 서울 탈환의 임무를 부여받았다. 미 제1해병연대가 전투를 수행하는 동안 국군 제17연대와 미 제7사단 제32연대가 영등포 공격에 참여하였다. 미 제10군단장 알몬드(Edward M. Almond) 소장은 9월 18일 오후 미 제1해병사단에 대하여 한강을 도하하여 서울 북쪽고지를 점령하라는 작전명령을 하달하였다. 이 명령의 요지는 미 제1해병연대가 경인국도를 따라 영등포를 향해 계속 진격하고 미 제5해병연대가 19일 도하지점을 선정하고 준비를 갖춘다는 것이다. 9월 19일 미 제5해병연대는 상륙지점으로 행주나루를 정하였다.
9월 20일 미 제5해병연대와 한국해병 제1대대가 한강 북쪽 북한군의 강력한 저항을 물리치고 상륙을 시작하였다. 서울탈환의 주공부대를 한국해병대로 지정한 것은 비록 전투경험과 장비면에서는 미약하지만, 정치적 고려와 심리적인 면에서 한국군과 한국인들의 사기를 높이려는 의도에서 이루어진 것이었다. 미 제1해병연대는 북한군의 완강한 저항을 물리치고 22일 영등포를 탈환하는데 성공하였다. 한편 미 제7사단은 9월 20일 새벽에야 인천∼ 안양간 도로를 중심으로 작전에 돌입하였다. 사단은 미 제1해병연대가 영등포에 진출하고 있을 때 그 우측을 방어하면서 적을 견제하고 다른 한편 수원 비행장을 조기 확보하도록 임무를 부여받았다.
수도탈환의 제일선 부대인 국군 해병 제1대대는 9월 21일 오후 미 제5해병연대와 함께 서울 북서쪽 외곽에 진출하였다. 한미 해병대의 진지 전방인 신촌일대에서 북한군은 1개 보병연대와 서울 치안연대가 방어선을 구축하고 있었다. 적 치안부대는 전선에서 도주하던 병사들을 모두 모아 방어진지에 투입시키고 아울러 시가지에 바리케이드 설치작업을 하고 있었다. 한국 해병 제1대대는 20일 새벽 경미한 적의 저항을 물리치면서 수색을 점령하였다.
한편 미 제1해병사단은 연희고지 능선을 넘어 좀 더 진출해야 적의 주저항선 진지가 있을 것으로 판단하고 있었다. 9월 22일 한국 해병 제1대대는 연희고지를 향해 공격을 감행하였으나, 적으로부터 치열한 저항을 받고 있었다. 북한군은 이날 새벽 방어력을 보완하기 위해 제25여단 2개 대대와 제45사단 전차 연대 전차 9대를 투입하고 있었다.
최초 미 제10군단의 서울 공략계획은 미 해병대와 한국 해병대를 기간으로 삼아 서울을 탈환하도록 되어 있었으나 9월 23일까지 적의 저항으로 미루어 보아 어려울 것으로 판단되었다. 9월 24일 아침 미 제1해병연대는 미 제5연대 제1대대의 엄호를 받으며 한강 도하를 개시하였다. 9월 24일 아침 알몬드 소장은 미 제7사단을 방문하고 제32연대로 하여금 서빙고로부터 서울에 돌입할 것과 한국 제17연대를 동 연대에 배속시킨다는 것을 지시하였다. 9월 25일 오전 미 제32연대와 한국군 제17연대는 서빙고로 도하공격을 개시하였다. 이날 밤 한국 해병대는 삼각지 쪽으로 서울에 돌입하였다.
미 제1해병사단은 9월 25일 서울탈환에 필요한 명령을 하달하였다. 이 명령에 의하면 미 제1해병연대(한국 해병 제2대대 배속)는 시가 중심부를 거쳐 미아리 고개를 점령하게 되었으며, 미 제5해병연대(한국 해병 제1대대 배속)는 중앙청을 포함한 지역을, 그리고 미 제7해병연대(한국 해병 제5대대 배속)는 북쪽의 높은 지대를 점령하는 것이었다.
이 당시 서울 지역을 방어하는 북한군 부대는 제18사단이었다. 이들은 사단의 일부를 영등포에 남겨 놓은 채 25일 저녁 약 5,000여 명의 주력을 의정부를 통하는 도로를 따라 철수시켰다. 북한군은 서울∼의정부 간의 방어를 위해 제31서울여단을 사단으로 증편하여 투입하였고, 제17기계화사단 제33연대를 서울로 투입하고 있었다.
9월 26일까지 미 제10군단이 탈환한 지역은 서울시내의 반 정도에 지나지 않았으나, 이미 도쿄의 맥아더사령관은 이날 14:20분 서울을 탈환했다는 유엔군 성명서 제9호를 발표하였다. 유엔군총사령부의 서울탈환 성명에도 불구하고 27일 서울 시내에서는 여전히 바리케이드를 둘러싼 공방전이 전개되고 있었다.
한편 한국해병대는 북한군의 저항을 분쇄하면서 서울 시가지에 돌입하고 있었다. 한국해병대 제6중대 1소대는 중앙청에 태극기를 게양하기 위해 대대의 통제를 벗어나 조선일보사와 동아일보사 앞까지 진출하였다. 당시 소대장 박정모 소위는 27일 새벽 양병수 2등 병조, 최국방 견습수병 등과 함께 중앙청 건물 옥상으로 올라가 태극기를 게양하였다.
미 제7사단의 전투는 미 해병사단과 달리 서울 동쪽 외곽도로를 따라 퇴각하는 적과 조우하는 형태로 전개되었다. 미 제7사단에 배속된 한국군 제17연대는 미 제32연대와 병행 진격하면서 서울 동쪽의 외곽퇴로를 차단하기 위하여 전진하였다. 28일 아침 국군 제17연대는 서울시내 서쪽에서 동진하여 중심부의 잔적을 완전히 소탕하고 동북외곽 왕십리로부터 서울 중심지로 입성하였다.
서울시와 경찰은 서울이 완전히 탈환된 28일 낮부터 시정을 재개하여 치안을 유지하고 공공시설을 급속히 복구하기 시작하였다. 9월 29일 오전 10시 맥아더 사령관과 일행이 도쿄에서 김포비행장에 도착하였고, 잠시 후 이승만 대통령 일행도 김포비행장에 도착하여 함께 서울시내로 향하였다. 수도 서울 환도식은 9월 29일 12시를 기해 거행되었고, 이로써 3개월간 북한의 점령하에 있던 수도 서울은 탈환되었다.