Millions of Londoners have voted to elect their councillors across the capital’s 32 boroughs.
Some 1,817 local authority seats were up for grabs in the city, while residents of Croydon, Hackney, Lewisham, Newham and Tower Hamlets also selected their mayors.
Labour was defending the most town halls, with the party winning 21 at the last local election in 2022 when in most boroughs it was a straight fight between two of the mainstream parties.
However, it has seen major losses to the Green Party, which has gone from no seats in Waltham Forest to a majority. The Greens also won mayoral elections in Hackney and Lewisham.
The Conservatives won six councils at the last local elections, while the Liberal Democrats controlled three.
The independent left-wing Aspire party won control of Tower Hamlets again.
Reform UK, which officially rebranded from the Brexit Party in January 2021, did not win any seats last time round.
This time, Nigel Farage’s party has taken its first London borough in Havering, but failed to claim its targets of Bexley and Bromley from the Tories.
The local election results in London
Who won the London elections: Full results
Labour’s Forhad Hussain has won the mayoral race in Newham, while the Green Party’s Zoe Garbett took the job in Hackney along with Green candidate Liam Shrivastava in Lewisham. In Croydon, the Conservatives held on to the mayoralty as Jason Perry was re-elected.
In Tower Hamlets, Lutfur Rahman of the Aspire party has been re-elected mayor.
Barking and Dagenham (Total number of seats: 51)
Winner: Labour (hold)
Labour: 38 (-9)
Reform: 9 (+9)
Green: 4 (+1)
Conservatives: none (-1)
Barnet (Total number of seats: 63)
Winner: No overall control (Labour loss)
Labour: 31 (-9)
Conservatives: 31 (+12)
Green: 1 (no change)
Reform: none (-2)
Independents: none (-1)
Bexley (Total number of seats: 45)
Winner: Conservatives (hold)
Conservatives: 29 (-1)
Labour: 9 (-3)
Reform: 7 (+7)
Independents: none (-3)
Brent (Total number of seats: 57)
Winner: No overall control (Labour loss)
Labour: 26 (-15)
Liberal Democrats: 11 (+8)
Conservatives: 11 (+6)
Green: 9 (+4)
Independents: none (-3)
Bromley (Total number of seats: 58)
Winner: Conservatives (hold)
Conservatives: 35 (+1)
Labour: 8 (-3)
Reform: 6 (+3)
Liberal Democrats: 6 (+1)
Independents: 3 (-2)
Camden (Total number of seats: 55)
Winner: Labour (hold)
Labour: 30 (-14)
Green: 11 (+10)
Liberal Democrats: 10 (+4)
Conservatives: 3 (no change)
Independents: 1 (no change)
Croydon (Total number of seats: 60)
Winner: No overall control (no change)
Labour: 30 (-4)
Conservatives: 28 (-5)
Green: 8 (+6)
Liberal Democrats: 2 (+1)
Reform: 2 (+2)
Ealing (Total number of seats: 70)
Winner: Labour (hold)
Labour: 46 (-10)
Liberal Democrats: 13 (+5)
Green: 5 (+5)
Conservatives: 5 (+1)
Independent: 1 (-1)
Enfield (Total number of seats: 63)
Winner: No overall control (Labour loss)
Conservatives: 31 (+6)
Labour: 27 (-8)
Green: 5 (+5)
Independents: none (-3)
Greenwich (Total number of seats: 55)
Winner: Labour (hold)
Labour: 35 (-12)
Green: 13 (+11)
Conservatives: 6 (+2)
Reform: 1 (+1)
Independent: none (-2)
Hackney (Total number of seats: 57)
Winner: Green (gain from Labour)
Green: 42 (+38)
Labour: 9 (-34)
Conservatives: 6 (no change)
Independents: none (-4)
Hammersmith & Fulham (Total number of seats: 50)
Winner: Labour (hold)
Labour seats: 38 (+1)
Conservatives: 12 (+2)
Green: none (-2)
Independent: none (-1)
Haringey (Total number of seats: 57)
Winner: No overall control (Labour loss)
Green: 28 (+26)
Labour: 20 (-24)
Liberal Democrats: 8 (+1)
Independents: 1 (-3)
Harrow (Total number of seats: 55)
Winner: Conservatives (hold)
Conservatives: 42 (+11)
Labour: 12 (-11)
Independents: 1 (no change)
Havering (Total number of seats: 55)
Winner: Reform (from no overall control)
Reform: 39 (+36)
Residents’ Association: 14 (-15)
Labour: 2 (-6)
Conservative: none (-14)
Independent: none (-1)
Hillingdon (Total number of seats: 53)
Winner: Conservatives (hold)
Conservatives: 30 (+1)
Labour: 16 (no change)
Reform: 4 (+4)
Green: 1 (no change)
Independents: none (-5)
Vacant: 2 (no change)
Hounslow (Total number of seats: 62)
Winner: Labour (hold)
Labour: 32 (-11)
Conservatives: 17 (+7)
Reform: 8 (+7)
Green: 3 (+2)
Liberal Democrats: 1 (+1)
Independents: 1 (-6)
Islington (Total number of seats: 51)
Winner: Labour (hold)
Labour: 32 (-16)
Green: 19 (+16)
Kensington and Chelsea (Total number of seats: 50)
Winner: Conservatives (hold)
Conservatives: 34 (-2)
Labour: 13 (+6)
Liberal Democrats: 3 (+1)
Independent: none (-4)
Green: none (-1)
Kingston-upon-Thames (Total number of seats: 48)
Winner: Liberal Democrats (hold)
Liberal Democrats: 44 (+2)
Conservatives: 2 (no change)
Independents: 2 (-2)
Lambeth (Total number of seats: 63)
Winner: No overall control (Labour loss)
Green: 29 (+25)
Labour: 26 (-28)
Liberal Democrats: 8 (+4)
Independents: none (-1)
Lewisham (Total number of seats 54)
Winner: Green (Labour loss)
Green: 40 (+ 36)
Labour: 14 (-36)
Merton (Total number of seats: 57)
Winner: Labour (hold)
Labour: 32 (+2)
Liberal Democrats: 19 (+2)
Conservatives: 4 (-3)
Independents: 2 (-1)
Newham (Total number of seats: 66)
Winner: No overall control (Labour loss)
Labour: 26 (-30)
Independents: 24 (+17)
Green: 16 (+13)
Redbridge (Total number of seats: 63)
Winner: Labour (hold)
Labour: 43 (-11)
Independents: 9 (+5)
Conservatives: 5 (no change)
Green: 5 (+5)
Reform: 1 (+1)
Richmond upon Thames (Total number of seats: 54)
Winner: Liberal Democrats (hold)
Liberal Democrats: 54 (+ 5)
Green: none (-5)
Southwark (Total number of seats: 63)
Winner: No overall control (Labour loss)
Labour: 29 (-16)
Green: 22 (+18)
Liberal Democrats: 12 (+1)
Independents: none (-3)
Sutton (Total number of seats: 55)
Winner: Liberal Democrats (hold)
Liberal Democrats: 51 (+23)
Reform: 2 (+2)
Labour: 1 (-1)
Independent: 1 (-4)
Conservatives: none (-20)
Tower Hamlets (Total number of seats: 45)
Winner: Aspire ( from no overall control)
Aspire: 33 (+11)
Green: 5 (+4)
Labour: 5 (-11)
Conservatives :1 (0)
Liberal Democrats: 1 (+1)
Independent: 0 (-5)
Waltham Forest (Total number of seats: 60)
Winner: Green (gain from Labour)
Green: 31 (+31)
Labour: 15 (-29)
Conservatives: 14 (+4)
Reform: none (-3)
Independents: none (-3)
Wandsworth (Total number of seats: 58)
Winner: No Overall Control (Labour loss)
Conservatives: 29 (+8)
Labour: 28 (-6)
Independent: 1 (-1)
Reform: none (-1)
Westminster (Total number of seats: 54)
Winner: Conservatives (gain from Labour)
Conservatives: 32 (+8)
Labour: 22 (-6)
Reform: none (-2)