Labour’s Marsha de Cordova held onto the Battersea seat she narrowly claimed from Tory Jane Ellison in 2017.
Ms de Cordova claimed the seat with 27,290 votes for a 45.5% share.
Wandsworth councillor Kim Caddy received 21,622 votes in a -5.5% swing for the Tories since the last election.
Ms de Cordova was met with an energised crowd at Wandsworth Civic Centre.
She said: “Every single day of the next Parliament I will fight for a better, more equal and fairer country.
“I will never forget your efforts in this election.
“I will champion the interests of the people of Battersea with the same passion I did when I was first elected in 2017.”
“To those who want me to continue to fight Brexit I will fight Brexit.
“To those who want me to help the efforts to save our amazing planet, I will.
“To those tired of our young people being hurt in pointless violence and to those grieved families I will continue to support you.
“To those who voted for Labour and who voted for hope I will not let you down.
“To those living in poverty and using food banks in Battersea we do not accept it and we cannot allow that suffering to continue.
“Thank you to the people of Battersea, I will continue to stand up for you, fight for you and be your voice in Parliament and in the constituency.”
It was a positive result for Liberal Democrat Mark Gitsham who received 9150 votes accounting for a 15.3% share.
His 15.3% share was a 7.3% gain for the party since the 2017 election.
A total of 75.6% of the constituency’s electorate cast a ballot – 4.6% more than took to the polls in 2017.
Battersea overwhelmingly voted to stay in the EU with 77.95% of the constituency voting remain.