The Tories have taken the Croydon mayoralty from Labour, in the latest major upset in the 2022 local election.
Jason Perry is set to become the first ever Conservative directly-elected mayor in the south London borough, beating close rival, Labour's Val Shawcross, by 589 votes. Labour also lost their hold over Croydon Council, with no party winning an overall majority.
The result bucks the trend in the capital for Boris Johnson’s Conservatives, who ended Friday counting their losses as the party lost flagship seats Westminster, Barnet, and Wandsworth to historic Labour victories.
The Tories were dealt a blow in the traditionally blue boroughs, with Labour taking Westminster City Council for the first time since its creation half a century ago.
The south west London borough was considered one of Margaret Thatcher’s favourites.
Keir Starmer’s Labour also regain control of Barnet, an area of north London with a large Jewish population, in what the leader has hailed as a vote of confidence in the party’s progress in tackling the party’s anti-semitism scandal.
But Labour lost out in Tower Hamlets, with the Aspire Party, founded by controversial figure Lutfur Rahman, gaining the council after winning 24 of the 45 seats. Mr Rahman also defeated Labour incumbent John Biggs to become the elected mayor of Tower Hamlets on Friday.
Mr Rahman was forced to step down in 2015 after an election court found him guilty of corrupt and illegal practices, but he has faced no criminal prosecution. He successfully ran for re-election this year for the first time since the scandal, after being barred from standing for elected office until 2021.
See the full list of London local election 2022 results in your borough:
Each of London's 32 boroughs held local elections on Thursday, 5 May.
The results will appear here as each area declares the result on Friday.
You can also find the election results for the Home Counties in our live results tracker.
Barking and Dagenham - Labour (hold)
Bexley - Conservative (hold)
Brent - Labour (hold)
Bromley - Conservative (hold)
Camden - Labour (hold)
Croydon - No party majority (Conservatives gain mayoralty from Labour)
Ealing - Labour (hold)
Enfield - Labour (hold)
Greenwich - Labour (hold)
Hackney - Labour (hold)
Hammersmith and Fulham - Labour (hold)
Harrow - Conservative (gain)
Haringey - Labour (hold)
Havering - no party majority (no change)
Hillingdon - Conservative (hold)
Hounslow - Labour (hold)
Islington - Labour (hold)
Kensington and Chelsea - Conservative (hold)
Kingston - Lib Dem (hold)
Lambeth - Labour (hold)
Lewisham - Labour (hold)
Merton - Labour (hold)
Newham - Labour (hold)
Redbridge - Labour (hold)
Richmond - Lib Dem (hold)
Southwark - Labour (hold)
Sutton - Lib Dem (hold)
Tower Hamlets - Aspire (gain from Labour)
Waltham Forest - Labour (hold)
Westminster- Labour (gain from Conservative)
Listen to ITV News' What You Need To Know podcast: