All years
2026 council by-elections
192 by-elections on our record, 51 of them won by a different party from last time.
Gains and losses by party
| Party | Gained | Lost | Net |
|---|---|---|---|
| Reform UK | 19 | 6 | ▲ +13 |
| Green | 8 | 3 | ▲ +5 |
| Conservative | 11 | 7 | ▲ +4 |
| Plaid Cymru - The Party of Wales | 2 | 0 | ▲ +2 |
| Scottish Green Party | 1 | 0 | ▲ +1 |
| Lincolnshire Independents Lincolnshire First | 0 | 1 | ▼ -1 |
| Liberal Democrats | 6 | 8 | ▼ -2 |
| SNP | 0 | 3 | ▼ -3 |
| Independent | 0 | 7 | ▼ -7 |
| Labour | 4 | 16 | ▼ -12 |
Every by-election
| Date | Ward | Winner | Previously |
|---|---|---|---|
| 15 Jan | BridgemaryGosport | Reform UK 42.5% | Gain from Liberal Democrats |
| 15 Jan | HeworthYork | Labour 36.7% | Hold |
| 20 Jan | Codnor, Langley Mill & AldercarAmber Valley | Reform UK 45.6% | Not known |
| 20 Jan | HorsleyDerbyshire | Green 43.6% | Gain from Reform UK |
| 22 Jan | Willaston & ThorntonCheshire West & Chester | Conservative 53.8% | Hold |
| 22 Jan | The RissingtonsCotswold | Liberal Democrats 37.5% | Gain from Green |
| 22 Jan | Glenrothes West and KinglassieFife | SNP 44.3% | Not known |
| 22 Jan | LeeswoodFlintshire | Reform UK 28.3% | Gain from Labour |
| 22 Jan | Central WymondhamSouth Norfolk | Conservative 31.1% | Not known |
| 29 Jan | Bearsden SouthEast Dunbartonshire | Liberal Democrats 38.1% | Not known |
| 5 Feb | Coleman StreetCity Of London | Independent 100.0% | Not known |
| 5 Feb | Ynys GybiIsle of Anglesey | Reform UK 43.9% | Not known |
| 5 Feb | Clevedon SouthNorth Somerset | Labour 29.1% | Hold |
| 10 Feb | FISHGUARD NORTH EASTPembrokeshire | Plaid Cymru - The Party of Wales 35.4% | Not known |
| 12 Feb | Worth ValleyBradford | Conservative 51.6% | Hold |
| 12 Feb | Fletton and WoodstonPeterborough | Reform UK 29.4% | Gain from Labour |
| 19 Feb | VanCaerphilly | Plaid Cymru - The Party of Wales 43.3% | Gain from Labour |
| 19 Feb | StoneygateLeicester | Green 30.9% | Gain from Labour |
| 19 Feb | ZetlandRedcar & Cleveland | Liberal Democrats 50.5% | Gain from Labour |
| 26 Feb | ShirleySouthampton | Liberal Democrats 27.3% | Gain from Labour |
| 5 Mar | CoggeshallBraintree | Reform UK 30.8% | Gain from Independent |
| 5 Mar | MurtonCounty Durham | Labour 50.6% | Gain from Reform UK |
| 5 Mar | HextableSevenoaks | Conservative 38.9% | Gain from Independent |
| 5 Mar | ThruppStroud | Green 67.5% | Hold |
| 5 Mar | SpitalTamworth | Reform UK 43.6% | Not known |
| 12 Mar | The BeechesCotswold | Liberal Democrats 52.7% | Hold |
| 12 Mar | AigburthLiverpool | Green 45.0% | Gain from Liberal Democrats |
| 12 Mar | Sleaford WestholmeNorth Kesteven | Reform UK 46.1% | Gain from Lincolnshire Independents Lincolnshire First |
| 12 Mar | Abingdon Abbey NorthcourtVale Of White Horse | Liberal Democrats 43.8% | Not known |
| 12 Mar | Penrith SouthWestmorland and Furness | Liberal Democrats 43.2% | Hold |
| 17 Mar | Milford: HakinPembrokeshire | Reform UK 29.9% | Gain from Independent |
| 26 Mar | Axholme CentralNorth Lincolnshire | Conservative 48.7% | Hold |
| 26 Mar | BrumbyNorth Lincolnshire | Reform UK 52.4% | Gain from Labour |
| 26 Mar | Halstead Knockholt & Badgers MountSevenoaks | Conservative 44.2% | Hold |
| 26 Mar | StanfordVale Of White Horse | Conservative 45.9% | Gain from Liberal Democrats |
| 2 Apr | TottingtonBury | Reform UK 39.5% | Not known |
| 2 Apr | WigmoreLuton | Reform UK 32.9% | Gain from Liberal Democrats |
| 2 Apr | FremingtonNorth Devon | Liberal Democrats 49.9% | Not known |
| 2 Apr | Hareholme and WaterfootRossendale | Green 37.7% | Gain from Labour |
| 9 Apr | CliftonvilleKent | Green 38.8% | Gain from Reform UK |
| 16 Apr | Narborough and WhetstoneLeicestershire | Reform UK 33.0% | Hold |
| 16 Apr | Cramlington South WestNorthumberland | Conservative 34.2% | Gain from Reform UK |
| 22 Apr | Barton and WintonSalford | Reform UK 34.9% | Gain from Labour |
| 23 Apr | Newquay Porth And TretherrasCornwall | Reform UK 30.2% | Hold |
| 30 Apr | TenburyMalvern Hills | Reform UK 45.1% | Not known |
| 7 May | Staveley NorthChesterfield | Reform UK 100.0% | Not known |
| 7 May | BridgemaryGosport | Reform UK 45.6% | Gain from Liberal Democrats |
| 21 May | BridportDorset | Liberal Democrats 43.6% | Hold |
| 21 May | KirkhamFylde | Conservative 60.6% | Not known |
| 21 May | CastleLancaster | Green 70.0% | Hold |
| 21 May | Alfrick, Leigh & RushwickMalvern Hills | Liberal Democrats 27.1% | Not known |
| 28 May | FairwoodSwansea | Liberal Democrats 32.4% | Gain from Conservative |
| 4 Jun | Coleman StreetCity Of London | Independent 100.0% | Not known |
| 4 Jun | Hawcoat and NewbarnsWestmorland and Furness | Reform UK 48.4% | Gain from Conservative |
| 11 Jun | Christleton & HuntingtonCheshire West & Chester | Conservative 32.9% | Hold |
| 11 Jun | Apsley & Corner HallDacorum | Liberal Democrats 32.9% | Hold |
| 11 Jun | Cippenham GreenSlough | Green 24.5% | Not known |
| 18 Jun | Idle and ThackleyBradford | Liberal Democrats 56.0% | Not known |
| 18 Jun | MoorsideBury | Labour 39.5% | Not known |
| 18 Jun | Gogarth MostynConwy | Reform UK 34.3% | Not known |
| 18 Jun | TudnoConwy | Reform UK 43.3% | Not known |
| 18 Jun | Chelmsford SpringfieldEssex | Liberal Democrats 54.6% | Not known |
| 18 Jun | Rayleigh WestEssex | Conservative 31.9% | Gain from Reform UK |
| 18 Jun | Hillingdon WestHillingdon | Not recorded | Not known |
| 18 Jun | Crofton ParkLewisham | Green 42.2% | Not known |
| 18 Jun | Bransgore, Burley, Sopley & Ringwood EastNew Forest | Conservative 39.3% | Not known |
| 18 Jun | Sweyne Park and GrangeRochford | Conservative 51.1% | Not known |
| 18 Jun | MorristonSwansea | Labour 35.1% | Hold |
| 18 Jun | MumblesSwansea | Conservative 37.3% | Hold |
| 18 Jun | Acton & MaesydreWrexham | Plaid Cymru - The Party of Wales 38.8% | Not known |
| 18 Jun | GrosvenorWrexham | Plaid Cymru - The Party of Wales 43.4% | Not known |
| 18 Jun | QUEENSWAYWrexham | Plaid Cymru - The Party of Wales 40.9% | Not known |
| 25 Jun | George St/HarbourAberdeen | SNP 33.1% | Not known |
| 25 Jun | GoldsmidBrighton & Hove | Green 49.0% | Gain from Labour |
| 25 Jun | Roman Bank and PeckoverCambridgeshire | Reform UK 39.0% | Hold |
| 25 Jun | LlangennechCarmarthenshire | Plaid Cymru - The Party of Wales 41.4% | Gain from Labour |
| 25 Jun | LLANRHAEADR-YNG-NGHINMEIRCHDenbighshire | Independent 48.0% | Not known |
| 25 Jun | Rhyl SouthDenbighshire | Reform UK 38.6% | Gain from Labour |
| 25 Jun | North ActonEaling | Green 27.2% | Not known |
| 25 Jun | DalstonHackney | Green 35.0% | Not known |
| 25 Jun | Hackney CentralHackney | Green 29.7% | Not known |
| 25 Jun | FarnworthHalton | Labour 45.9% | Hold |
| 25 Jun | Northumberland ParkHaringey | Not recorded | Not known |
| 25 Jun | WoodsideHaringey | Green 36.8% | Not known |
| 25 Jun | Bushey ParkHertsmere | Conservative 42.9% | Gain from Liberal Democrats |
| 25 Jun | East Sutherland and EddertonHighland | Independent 40.2% | Not known |
| 25 Jun | Dowlais & PantMerthyr Tydfil | Labour 40.1% | Gain from Independent |
| 25 Jun | Camp HillNuneaton and Bedworth | Reform UK 50.4% | Not known |
| 25 Jun | TreorchyRhondda Cynon Taf | Plaid Cymru - The Party of Wales 70.8% | Not known |
| 25 Jun | HaydockSt. Helens | Reform UK 31.9% | Not known |
| 25 Jun | St Helens Town CentreSt. Helens | Reform UK 39.9% | Not known |
| 25 Jun | StrettonStaffordshire | Reform UK 37.1% | Hold |
| 25 Jun | WilnecoteTamworth | Reform UK 46.4% | Not known |
| 25 Jun | Dawlish South WestTeignbridge | Liberal Democrats 45.3% | Hold |
| 25 Jun | Stort ValleyUttlesford | Conservative 46.5% | Gain from Liberal Democrats |
| 2 Jul | Peterhead South and CrudenAberdeenshire | SNP 39.0% | Not known |
| 2 Jul | Horwich NorthBolton | Horwich & Blackrod First Independents 45.4% | Not known |
| 2 Jul | Weaver & CuddingtonCheshire West & Chester | Independent 35.7% | Not known |
| 2 Jul | St Michael'sCotswold | Liberal Democrats 58.4% | Hold |
| 2 Jul | St Leonards and St IvesDorset | Conservative 37.9% | Hold |
| 2 Jul | Cirencester ParkGloucestershire | Liberal Democrats 58.6% | Hold |
| 2 Jul | Lutterworth EastHarborough | Reform UK 28.2% | Not known |
| 2 Jul | GlantwymynPowys | Plaid Cymru - The Party of Wales 81.8% | Not known |
| 2 Jul | Llanyre with NantmelPowys | Reform UK 41.5% | Gain from Independent |
| 2 Jul | Yscir with Honddu Isaf & LlanddewPowys | Liberal Democrats 39.6% | Gain from Conservative |
| 2 Jul | Malinslee & Dawley BankTelford & Wrekin | Labour 42.9% | Hold |
| 2 Jul | LlantarnamTorfaen | Reform UK 42.7% | Not known |
| 7 Jul | HaslemereSurrey | Liberal Democrats 47.8% | Hold |
| 7 Jul | Haslemere WestWaverley | Liberal Democrats 58.6% | Hold |
| 9 Jul | Regents ParkCamden | Labour 27.4% | Not known |
| 9 Jul | SplottCardiff | Labour 40.3% | Hold |
| 9 Jul | Argoed & New BrightonFlintshire | Liberal Democrats 39.8% | Hold |
| 9 Jul | Connah's Quay CentralFlintshire | Reform UK 49.3% | Gain from Independent |
| 9 Jul | High FellGateshead | Reform UK 35.7% | Not known |
| 9 Jul | LlanrugGwynedd | Independent 57.4% | Not known |
| 9 Jul | Clapham ParkLambeth | Green 31.6% | Not known |
| 9 Jul | Streatham St Leonard’sLambeth | Liberal Democrats 33.7% | Not known |
| 9 Jul | TrebanosNeath Port Talbot | Plaid Cymru - The Party of Wales 51.1% | Not known |
| 9 Jul | Suffield ParkNorth Norfolk | Liberal Democrats 65.4% | Hold |
| 9 Jul | Pembroke Dock: MarketPembrokeshire | Conservative 37.7% | Gain from Independent |
| 9 Jul | LarkhallSouth Lanarkshire | Reform UK 35.2% | Not known |
| 9 Jul | KinwartonStratford-On-Avon | Conservative 36.4% | Gain from Liberal Democrats |
| 9 Jul | BarucVale of Glamorgan | Plaid Cymru - The Party of Wales 47.7% | Not known |
| 16 Jul | Dereham ToftwoodBreckland | Conservative 45.9% | Gain from Labour |
| 16 Jul | Ramsey and BuryCambridgeshire | Reform UK 29.7% | Hold |
| 16 Jul | Kidlington WestCherwell | Liberal Democrats 47.8% | Hold |
| 16 Jul | Old CattonNorfolk | Not recorded | Hold |
| 16 Jul | Fletton and WoodstonPeterborough | Green 41.2% | Not known |
| 16 Jul | Norfolk ConstabularyPolice and Crime Commissioner for Norfolk by-election | Reform UK 26.7% | Not known |
| 16 Jul | WellingtonRushmoor | Labour 42.1% | Hold |
| 16 Jul | Himley & SwindonSouth Staffordshire | Conservative 44.2% | Hold |
| 16 Jul | ManorStafford | Labour 36.2% | Hold |
| 23 Jul | Exmouth BrixingtonEast Devon | Conservative 35.2% | Hold |
| 23 Jul | Cuxton, Halling & RiversideMedway | Reform UK 35.7% | Gain from Conservative |
| 23 Jul | Longwell GreenSouth Gloucestershire | Conservative 37.3% | Hold |
| 23 Jul | Grays RiversideThurrock | Labour 30.2% | Not known |
| 23 Jul | Grays TownThurrock | Labour 34.2% | Gain from Reform UK |
| 6 Aug | HengoedCaerphilly | Plaid Cymru - The Party of Wales 49.9% | Not known |
| 6 Aug | HeachamKing's Lynn And West Norfolk | Reform UK 37.8% | Not known |
| 6 Aug | SnettishamKing's Lynn And West Norfolk | Reform UK 35.1% | Gain from Conservative |
| 6 Aug | Hooley, Merstham & NetherneReigate & Banstead | Green 41.8% | Hold |
| 6 Aug | HartonSouth Tyneside | Reform UK 28.9% | Not known |
| 13 Aug | Honiton St Michael'sEast Devon | Liberal Democrats 45.9% | Not known |
| 13 Aug | AlmondburyKirklees | Not recorded | Not known |
| 20 Aug | Penistone EastBarnsley | Not recorded | Not known |
| 20 Aug | Harraby SouthCumberland | Reform UK 42.5% | Gain from Labour |
| 20 Aug | St Neots EynesburyHuntingdonshire | Liberal Democrats 45.3% | Not known |
| 20 Aug | Leen ValleyNottingham | Labour 30.5% | Hold |
| 27 Aug | Guston, Kingsdown & St Margaret's-at-CliffeDover | Green 28.8% | Gain from Conservative |
| 27 Aug | Throckley, Walbottle & NewburnNewcastle Upon Tyne | Reform UK 28.5% | Hold |
| 27 Aug | SoutheySheffield | Reform UK 50.6% | Not known |
| 27 Aug | Billinge & Seneley GreenSt. Helens | Not recorded | Hold |
| 27 Aug | TrinityWandsworth | Labour 44.0% | Not known |
| 2 Sept | KingswoodStroud | Liberal Democrats 64.0% | Hold |
| 3 Sept | Portobello/CraigmillarEdinburgh | Scottish Green Party 28.0% | Gain from SNP |
| 3 Sept | Southside/NewingtonEdinburgh | Labour 32.2% | Gain from SNP |
| 3 Sept | Chesterton & LauntonOxfordshire | Liberal Democrats 41.7% | Hold |
| 3 Sept | Llantwit FardreRhondda Cynon Taf | Conservative 57.6% | Hold |
| 3 Sept | Frome WestSomerset | Green 41.4% | Hold |
| 10 Sept | CordwainerCity of London Corporation | Independent | Not known |
| 10 Sept | BurnageManchester | Labour 42.1% | Hold |
| 10 Sept | Eckington South & RenishawNorth East Derbyshire | Reform UK 40.2% | Gain from Labour |
| 10 Sept | Hutton & LockingNorth Somerset | Reform UK 38.5% | Not known |
| 10 Sept | BridgeRedbridge | Independent | Not known |
| 10 Sept | Haverhill WestWest Suffolk | Conservative 51.3% | Not known |
| 15 Sept | East MarkhamBassetlaw | Reform UK 49.6% | Gain from Conservative |
| 17 Sept | Wreake ValleyCharnwood | Conservative 48.2% | Gain from Green |
| 17 Sept | WalkleySheffield | Labour 55.6% | Not known |
| 17 Sept | Avondale and StonehouseSouth Lanarkshire | SNP | Hold |
| 23 Sept | Cranbrook, Sissinghurst and FrittendenTunbridge Wells | Liberal Democrats 37.4% | Not known |
| 24 Sept | Queen's ParkBrighton & Hove | Green 50.1% | Gain from Labour |
| 24 Sept | BlockleyCotswold | Conservative 54.7% | Gain from Green |
| 24 Sept | New BradwellMilton Keynes | Labour 80.5% | Hold |
| 24 Sept | Wombourne NorthSouth Staffordshire | Conservative 50.1% | Hold |
| 24 Sept | BrayWindsor & Maidenhead | Conservative 36.1% | Not known |
| 1 Oct | ClaremontBlackpool | Labour 41.8% | Hold |
| 1 Oct | Wick and East CaithnessHighland | Liberal Democrats | Gain from SNP |
| 1 Oct | Long Whatton & DiseworthNorth West Leicestershire | Conservative 55.5% | Hold |
| 1 Oct | HirstNorthumberland | Not recorded | Hold |
| 1 Oct | AmbleNorthumberland County Council | Labour 38.8% | Not known |
| 1 Oct | HirstNorthumberland County Council | Labour 71.6% | Not known |
| 1 Oct | Forth and EndrickStirling | Conservative | Hold |
| 1 Oct | Forth and EndrickStirling District Council | Not recorded | Not known |
| 8 Oct | Midstocket/RosemountAberdeen | SNP | Hold |
| 8 Oct | Kilburn, Denby, Holbrook & HorsleyAmber Valley | Green 29.5% | Not known |
| 8 Oct | Myatt's FieldsMetropolitan Borough of Lambeth | Labour 46.7% | Not known |
| 8 Oct | TownNewcastle-under-Lyme | Labour 52.4% | Not known |
| 13 Oct | RodboroughStroud | Not recorded | Hold |
| 15 Oct | Higher KinnertonFlintshire County Council | Not recorded | Not known |
| 15 Oct | ShepshedLeicestershire | Not recorded | Hold |
| 15 Oct | BradninchMid Devon | Not recorded | Hold |
| 15 Oct | Salisbury MilfordWiltshire | Not recorded | Hold |
