All years
2021 council by-elections
446 by-elections on our record, 134 of them won by a different party from last time.
Gains and losses by party
| Party | Gained | Lost | Net |
|---|---|---|---|
| Conservative | 78 | 30 | ▲ +48 |
| Green | 14 | 0 | ▲ +14 |
| Plaid Cymru - The Party of Wales | 2 | 0 | ▲ +2 |
| Christchurch Independents | 1 | 0 | ▲ +1 |
| Tunbridge Wells Alliance | 1 | 0 | ▲ +1 |
| Lincolnshire Independents Lincolnshire First | 0 | 1 | ▼ -1 |
| HOSEM | 0 | 1 | ▼ -1 |
| Thanet Independents | 0 | 1 | ▼ -1 |
| City Independents | 0 | 1 | ▼ -1 |
| Morecambe Bay Independents | 0 | 1 | ▼ -1 |
| Independent | 17 | 19 | ▼ -2 |
| Liberal Democrats | 12 | 23 | ▼ -11 |
| SNP | 0 | 15 | ▼ -15 |
| Labour | 9 | 42 | ▼ -33 |
Every by-election
| Date | Ward | Winner | Previously |
|---|---|---|---|
| 4 Mar | FortissatNorth Lanarkshire | Labour 38.4% | Gain from SNP |
| 4 Mar | ThorniewoodNorth Lanarkshire | Labour 36.4% | Gain from SNP |
| 11 Mar | Aird and Loch NessHighland | Independent 28.3% | Gain from SNP |
| 11 Mar | Leaderdale and MelroseScottish Borders | Conservative 40.8% | Gain from SNP |
| 11 Mar | Livingston SouthWest Lothian | SNP 43.9% | Hold |
| 18 Mar | Helensburgh and Lomond SouthArgyll and Bute | Conservative 50.7% | Gain from SNP |
| 18 Mar | Isle of ButeArgyll and Bute | Independent 36.2% | Gain from SNP |
| 18 Mar | EiriasConwy | Independent 34.1% | Hold |
| 18 Mar | CorwenDenbighshire | Plaid Cymru - The Party of Wales 65.6% | Not known |
| 18 Mar | BailliestonGlasgow | SNP 50.0% | Hold |
| 18 Mar | Partick East/KelvindaleGlasgow | SNP 32.1% | Hold |
| 18 Mar | MaesydreWrexham | Plaid Cymru - The Party of Wales 30.7% | Gain from Labour |
| 25 Mar | LlanrugGwynedd | Plaid Cymru - The Party of Wales 64.5% | Not known |
| 25 Mar | Midlothian EastMidlothian | SNP 35.4% | Hold |
| 25 Mar | Almond and EarnPerth and Kinross | Conservative 51.1% | Gain from SNP |
| 1 Apr | St KingsmarkMonmouthshire | Conservative 55.7% | Hold |
| 8 Apr | AbersychanTorfaen | Labour 60.2% | Hold |
| 8 Apr | CwmyniscoyTorfaen | Labour 77.1% | Hold |
| 8 Apr | New InnTorfaen | Conservative 53.8% | Hold |
| 6 May | AspatriaAllerdale | Independent 50.4% | Not known |
| 6 May | ChristchurchAllerdale | Conservative 48.6% | Not known |
| 6 May | Ellen and GilcruxAllerdale | Conservative 39.4% | Not known |
| 6 May | Seaton and NorthsideAllerdale | Conservative 41.5% | Not known |
| 6 May | BrookfieldArun | Conservative 48.5% | Gain from Liberal Democrats |
| 6 May | PevenseyArun | Conservative 38.3% | Gain from Liberal Democrats |
| 6 May | Annesley & Kirkby WoodhouseAshfield | Ashfield Independents 74.9% | Hold |
| 6 May | SkegbyAshfield | Ashfield Independents 60.7% | Hold |
| 6 May | BeaverAshford | Conservative 42.2% | Gain from Labour |
| 6 May | Great CornardBabergh | Conservative 48.1% | Hold |
| 6 May | ThamesBarking and Dagenham | Labour 42.4% | Hold |
| 6 May | East BarnetBarnet | Conservative 43.8% | Gain from Labour |
| 6 May | EdgwareBarnet | Conservative 62.5% | Hold |
| 6 May | HindpoolBarrow-in-Furness | Labour 62.6% | Hold |
| 6 May | RoosecoteBarrow-in-Furness | Conservative 61.0% | Hold |
| 6 May | RanskillBassetlaw | Conservative 63.0% | Not known |
| 6 May | LonglandsBexley | Conservative 62.1% | Hold |
| 6 May | BillesleyBirmingham | Labour 54.8% | Hold |
| 6 May | Hall Green NorthBirmingham | Labour 53.7% | Hold |
| 6 May | OscottBirmingham | Conservative 54.4% | Gain from Labour |
| 6 May | QuintonBirmingham | Conservative 48.7% | Gain from Labour |
| 6 May | Stanton and FlamvilleBlaby | Conservative 62.0% | Hold |
| 6 May | HighfieldBlackpool | Conservative 54.9% | Gain from Labour |
| 6 May | NorbreckBlackpool | Conservative 50.6% | Gain from Independent |
| 6 May | Bolsover North & ShuttlewoodBolsover | Labour 51.5% | Hold |
| 6 May | PinxtonBolsover | Labour 49.4% | Hold |
| 6 May | SkirbeckBoston | Conservative 43.2% | Gain from Independent |
| 6 May | Canford HeathBournemouth, Christchurch & Poole | Conservative 40.5% | Gain from Liberal Democrats |
| 6 May | CommonsBournemouth, Christchurch & Poole | Christchurch Independents 44.7% | Gain from Independent |
| 6 May | Hatfield Peverel & TerlingBraintree | Conservative 61.4% | Hold |
| 6 May | Witham SouthBraintree | Conservative 51.5% | Hold |
| 6 May | Brondesbury ParkBrent | Labour 46.6% | Hold |
| 6 May | Nant-Y-MoelBridgend | Independent 54.8% | Hold |
| 6 May | Hollingdean and StanmerBrighton & Hove | Green 41.6% | Gain from Labour |
| 6 May | PatchamBrighton & Hove | Conservative 41.5% | Hold |
| 6 May | Crystal PalaceBromley | Labour 53.1% | Hold |
| 6 May | Beeston RylandsBroxtowe | Labour 44.6% | Hold |
| 6 May | Stapleford South WestBroxtowe | Labour 47.7% | Hold |
| 6 May | SwalecliffeCanterbury | Conservative 42.6% | Hold |
| 6 May | WestgateCanterbury | Labour 39.2% | Gain from Liberal Democrats |
| 6 May | Cathedral and CastleCarlisle | Labour 39.2% | Hold |
| 6 May | Harraby South and ParklandsCarlisle | Conservative 53.8% | Gain from Labour |
| 6 May | Newtown and Morton NorthCarlisle | Conservative 49.3% | Gain from Labour |
| 6 May | BoyceCastle Point | Independent 45.3% | Gain from Conservative |
| 6 May | St George'sCastle Point | Independent 46.2% | Gain from Conservative |
| 6 May | Moulsham LodgeChelmsford | Conservative 43.0% | Gain from Liberal Democrats |
| 6 May | Crewe WestCheshire East | Labour 42.3% | Hold |
| 6 May | FrodshamCheshire West & Chester | Conservative 44.4% | Hold |
| 6 May | NestonCheshire West & Chester | Labour 57.0% | Hold |
| 6 May | Whitehaven CentralCopeland | Labour 47.7% | Hold |
| 6 May | FosseridgeCotswold | Conservative 63.7% | Hold |
| 6 May | Barden FellCraven | Independent 77.9% | Hold |
| 6 May | PenyghentCraven | Conservative 49.6% | Hold |
| 6 May | KenleyCroydon | Conservative 60.6% | Hold |
| 6 May | New Addington NorthCroydon | Labour 48.6% | Hold |
| 6 May | Park Hill & WhitgiftCroydon | Conservative 52.5% | Hold |
| 6 May | South NorwoodCroydon | Labour 49.9% | Hold |
| 6 May | WoodsideCroydon | Labour 48.3% | Hold |
| 6 May | BramptonCumbria | Conservative 56.2% | Hold |
| 6 May | Cockermouth NorthCumbria | Conservative 41.3% | Gain from Liberal Democrats |
| 6 May | St John's and Great CliftonCumbria | Conservative 36.8% | Gain from Independent |
| 6 May | Ulverston WestCumbria | Green 39.6% | Gain from Conservative |
| 6 May | Leverstock GreenDacorum | Conservative 60.5% | Hold |
| 6 May | Tring CentralDacorum | Liberal Democrats 55.3% | Hold |
| 6 May | HummersknottDarlington | Conservative 49.9% | Hold |
| 6 May | Red Hall & LingfieldDarlington | Conservative 42.3% | Gain from Labour |
| 6 May | DarenthDartford | Conservative 49.9% | Hold |
| 6 May | Wilmington, Sutton-at-Hone & HawleyDartford | Conservative 73.3% | Hold |
| 6 May | MassonDerbyshire Dales | Conservative 41.3% | Gain from Labour |
| 6 May | WirksworthDerbyshire Dales | Labour 42.3% | Hold |
| 6 May | Mill HillDover | Conservative 40.3% | Gain from Labour |
| 6 May | Ealing BroadwayEaling | Conservative 38.4% | Hold |
| 6 May | Hanger HillEaling | Conservative 35.9% | Hold |
| 6 May | HobbayneEaling | Labour 48.3% | Hold |
| 6 May | Whimple & RockbeareEast Devon | Conservative 56.1% | Not known |
| 6 May | Bramshott & LiphookEast Hampshire | Conservative 56.5% | Hold |
| 6 May | GrayshottEast Hampshire | Conservative 54.6% | Hold |
| 6 May | Bishop’s Stortford All SaintsEast Hertfordshire | Liberal Democrats 49.6% | Hold |
| 6 May | CHAPEL ST. LEONARDSEast Lindsey | Conservative 67.4% | Hold |
| 6 May | South East HoldernessEast Riding Of Yorkshire | Conservative 52.1% | Hold |
| 6 May | South West HoldernessEast Riding Of Yorkshire | Conservative 39.9% | Hold |
| 6 May | Eton ParkEast Staffordshire | Labour 63.3% | Hold |
| 6 May | Beccles & WorlinghamEast Suffolk | Green 48.9% | Hold |
| 6 May | FramlinghamEast Suffolk | Conservative 44.8% | Hold |
| 6 May | Hampden ParkEastbourne | Liberal Democrats 40.3% | Hold |
| 6 May | SovereignEastbourne | Conservative 54.8% | Hold |
| 6 May | HartsideEden | Conservative 49.9% | Hold |
| 6 May | SkeltonEden | Conservative 54.4% | Hold |
| 6 May | ChaseEnfield | Conservative 44.0% | Gain from Labour |
| 6 May | JubileeEnfield | Labour 55.7% | Hold |
| 6 May | SouthburyEnfield | Labour 46.6% | Hold |
| 6 May | Waltham Abbey High BeachEpping Forest | Conservative 63.9% | Hold |
| 6 May | Hallam FieldsErewash | Conservative 54.1% | Gain from Labour |
| 6 May | Nottingham RoadErewash | Conservative 51.5% | Gain from Labour |
| 6 May | LatterseyFenland | Conservative 62.7% | Hold |
| 6 May | GwernymynyddFlintshire | Independent 78.9% | Hold |
| 6 May | Berry HillForest Of Dean | Independent 40.7% | Hold |
| 6 May | Cinderford EastForest Of Dean | Labour 39.5% | Hold |
| 6 May | WestcourtGravesham | Conservative 49.4% | Gain from Labour |
| 6 May | ClaydonGreat Yarmouth | Conservative 52.9% | Gain from Labour |
| 6 May | ORMESBYGreat Yarmouth | Conservative 74.6% | Hold |
| 6 May | GlyndonGreenwich | Labour 59.4% | Hold |
| 6 May | Greenwich WestGreenwich | Labour 47.1% | Hold |
| 6 May | Kidbrooke with HornfairGreenwich | Labour 42.3% | Hold |
| 6 May | Shooters HillGreenwich | Labour 54.2% | Hold |
| 6 May | Friary and St NicolasGuildford | Liberal Democrats 51.9% | Hold |
| 6 May | PirbrightGuildford | Conservative 71.5% | Hold |
| 6 May | SendGuildford | Not recorded | Not known |
| 6 May | Hoxton East & ShoreditchHackney | Labour 54.0% | Not known |
| 6 May | Newton FarmHerefordshire | Conservative 46.5% | Gain from Independent |
| 6 May | Borehamwood KenilworthHertsmere | Labour 52.4% | Hold |
| 6 May | Bushey NorthHertsmere | Liberal Democrats 49.2% | Hold |
| 6 May | CharvilleHillingdon | Conservative 49.6% | Hold |
| 6 May | TrafalgarHorsham | Liberal Democrats 65.4% | Hold |
| 6 May | CranfordHounslow | Labour 52.0% | Hold |
| 6 May | Hounslow HeathHounslow | Labour 52.0% | Hold |
| 6 May | Huntingdon NorthHuntingdonshire | Labour 38.5% | Hold |
| 6 May | St Ives SouthHuntingdonshire | Conservative 43.0% | Hold |
| 6 May | St. Ives EastHuntingdonshire | Conservative 54.9% | Hold |
| 6 May | WarboysHuntingdonshire | Conservative 62.7% | Hold |
| 6 May | CaergybiIsle of Anglesey | Independent 36.5% | Gain from Labour |
| 6 May | SeiriolIsle of Anglesey | Plaid Cymru - The Party of Wales 42.0% | Not known |
| 6 May | BunhillIslington | Labour 48.4% | Hold |
| 6 May | Highbury WestIslington | Labour 42.4% | Hold |
| 6 May | HollowayIslington | Labour 58.1% | Hold |
| 6 May | MildmayIslington | Labour 55.7% | Hold |
| 6 May | St Peter'sIslington | Labour 42.9% | Hold |
| 6 May | Chessington SouthKingston upon Thames | Liberal Democrats 37.9% | Hold |
| 6 May | BulkLancaster | Green 54.3% | Hold |
| 6 May | KelletLancaster | Conservative 50.9% | Gain from Liberal Democrats |
| 6 May | North EvingtonLeicester | Labour 49.2% | Hold |
| 6 May | Seaford EastLewes | Conservative 47.5% | Hold |
| 6 May | Seaford WestLewes | Conservative 56.3% | Hold |
| 6 May | Summerfield & All SaintsLichfield | Conservative 57.3% | Gain from Labour |
| 6 May | High TownLuton | Labour 47.2% | Hold |
| 6 May | Round GreenLuton | Liberal Democrats 38.5% | Hold |
| 6 May | Heybridge EastMaldon | Conservative 55.3% | Hold |
| 6 May | TollesburyMaldon | Independent 65.4% | Gain from Conservative |
| 6 May | OakhamMansfield | Conservative 51.6% | Hold |
| 6 May | Wells St Thomas'Mendip | Conservative 58.0% | Not known |
| 6 May | St HelierMerton | Labour 54.4% | Hold |
| 6 May | CastleMid Devon | Conservative 40.8% | Gain from Liberal Democrats |
| 6 May | TawMid Devon | Conservative 64.1% | Hold |
| 6 May | WestexeMid Devon | Conservative 44.2% | Gain from Independent |
| 6 May | COPTHORNE & WORTHMid Sussex | Conservative 61.6% | Gain from Independent |
| 6 May | BoughtonNewark And Sherwood | Conservative 61.2% | Hold |
| 6 May | VictoriaNewport | Labour 57.9% | Hold |
| 6 May | Eckington South & RenishawNorth East Derbyshire | Conservative 51.6% | Gain from Labour |
| 6 May | Killamarsh EastNorth East Derbyshire | Conservative 56.4% | Hold |
| 6 May | Killamarsh WestNorth East Derbyshire | Conservative 55.9% | Hold |
| 6 May | Royston MeridianNorth Hertfordshire | Conservative 49.4% | Hold |
| 6 May | Royston PalaceNorth Hertfordshire | Conservative 47.5% | Hold |
| 6 May | Bassingham and Brant BroughtonNorth Kesteven | Conservative 45.3% | Gain from Lincolnshire Independents Lincolnshire First |
| 6 May | AshbyNorth Lincolnshire | Conservative 50.9% | Gain from Labour |
| 6 May | BottesfordNorth Lincolnshire | Conservative 73.3% | Hold |
| 6 May | Broughton and ApplebyNorth Lincolnshire | Conservative 67.6% | Hold |
| 6 May | CoastalNorth Norfolk | Conservative 58.7% | Gain from Liberal Democrats |
| 6 May | HoltNorth Norfolk | Conservative 39.2% | Gain from Liberal Democrats |
| 6 May | Portishead EastNorth Somerset | Portishead Independents 40.4% | Hold |
| 6 May | Atherstone CentralNorth Warwickshire | Conservative 54.8% | Gain from Labour |
| 6 May | CurdworthNorth Warwickshire | Conservative 81.5% | Hold |
| 6 May | Polesworth EastNorth Warwickshire | Conservative 54.6% | Gain from Labour |
| 6 May | Ibstock EastNorth West Leicestershire | Conservative 57.8% | Gain from Labour |
| 6 May | Worthington & BreedonNorth West Leicestershire | Conservative 69.7% | Hold |
| 6 May | Harrogate Bilton and Nidd GorgeNorth Yorkshire | Conservative 42.6% | Gain from Liberal Democrats |
| 6 May | RibblesdaleNorth Yorkshire | Conservative 54.2% | Hold |
| 6 May | LoxfordRedbridge | Labour 69.6% | Hold |
| 6 May | Seven KingsRedbridge | Labour 57.4% | Hold |
| 6 May | GuisboroughRedcar & Cleveland | Conservative 50.2% | Gain from Labour |
| 6 May | HuttonRedcar & Cleveland | Conservative 53.3% | Hold |
| 6 May | LongbeckRedcar & Cleveland | Conservative 45.0% | Hold |
| 6 May | Billington & LanghoRibble Valley | Conservative 65.6% | Hold |
| 6 May | MellorRibble Valley | Conservative 66.5% | Hold |
| 6 May | West Bradford & GrindletonRibble Valley | Conservative 71.4% | Hold |
| 6 May | Hampton WickRichmond upon Thames | Liberal Democrats 52.5% | Hold |
| 6 May | StacksteadsRossendale | Labour 56.8% | Not known |
| 6 May | Eastern RotherRother | Conservative 59.7% | Hold |
| 6 May | Sutton BoningtonRushcliffe | Conservative 66.2% | Hold |
| 6 May | Camblesforth and CarltonSelby | Conservative 66.4% | Not known |
| 6 May | Brasted Chevening & SundridgeSevenoaks | Conservative 54.3% | Hold |
| 6 May | Trull, Pitminster and CorfeSomerset West and Taunton | Liberal Democrats 55.5% | Hold |
| 6 May | GirtonSouth Cambridgeshire | Liberal Democrats 44.4% | Gain from Conservative |
| 6 May | Harston & CombertonSouth Cambridgeshire | Liberal Democrats 43.6% | Hold |
| 6 May | MelbournSouth Cambridgeshire | Liberal Democrats 41.8% | Hold |
| 6 May | Milton & WaterbeachSouth Cambridgeshire | Liberal Democrats 34.3% | Hold |
| 6 May | Church GresleySouth Derbyshire | Conservative 61.4% | Gain from Labour |
| 6 May | HiltonSouth Derbyshire | Conservative 59.3% | Hold |
| 6 May | SealesSouth Derbyshire | Conservative 67.0% | Hold |
| 6 May | Frenchay & DownendSouth Gloucestershire | Conservative 37.8% | Hold |
| 6 May | Ivybridge WestSouth Hams | Conservative 50.4% | Hold |
| 6 May | GlenSouth Kesteven | Conservative 77.8% | Hold |
| 6 May | Broughton and ConistonSouth Lakeland | Liberal Democrats 51.9% | Hold |
| 6 May | Furness PeninsulaSouth Lakeland | Conservative 45.7% | Gain from Liberal Democrats |
| 6 May | GrangeSouth Lakeland | Liberal Democrats 60.2% | Hold |
| 6 May | Kendal RuralSouth Lakeland | Liberal Democrats 52.1% | Hold |
| 6 May | Didcot North EastSouth Oxfordshire | Conservative 40.7% | Gain from Liberal Democrats |
| 6 May | Forest Hill & HoltonSouth Oxfordshire | Liberal Democrats 64.3% | Hold |
| 6 May | Longton & Hutton WestSouth Ribble | Conservative 67.2% | Hold |
| 6 May | St AmbroseSouth Ribble | Labour 44.4% | Hold |
| 6 May | Staines SouthSpelthorne | Conservative 36.6% | Gain from Liberal Democrats |
| 6 May | Cheadle North EastStaffordshire Moorlands | Conservative 49.8% | Gain from Independent |
| 6 May | Cheadle South EastStaffordshire Moorlands | Conservative 48.8% | Gain from Independent |
| 6 May | Forth and EndrickStirling | Conservative 39.5% | Gain from SNP |
| 6 May | Billingham WestStockton-on-Tees | Conservative 40.3% | Gain from Independent |
| 6 May | Bishopsgarth & Elm TreeStockton-on-Tees | Conservative 45.2% | Gain from Liberal Democrats |
| 6 May | HartburnStockton-on-Tees | Conservative 73.2% | Hold |
| 6 May | Western ParishesStockton-on-Tees | Conservative 65.1% | Hold |
| 6 May | YarmStockton-on-Tees | Conservative 65.1% | Gain from Independent |
| 6 May | MoorcroftStoke On Trent | Conservative 49.7% | Gain from Labour |
| 6 May | BagshotSurrey Heath | Conservative 54.1% | Gain from Liberal Democrats |
| 6 May | SheernessSwale | Conservative 41.5% | Gain from Labour |
| 6 May | CastleSwansea | Labour 44.0% | Hold |
| 6 May | LlansamletSwansea | Labour 49.4% | Hold |
| 6 May | Chiseldon & LawnSwindon | Conservative 55.0% | Hold |
| 6 May | ChaldonTandridge | Conservative 62.2% | Hold |
| 6 May | FELBRIDGETandridge | Not recorded | Hold |
| 6 May | Dawley & AqueductTelford & Wrekin | Labour 50.9% | Hold |
| 6 May | DonningtonTelford & Wrekin | Conservative 54.0% | Gain from Labour |
| 6 May | EastcliffTendring | Independent 46.9% | Gain from HOSEM |
| 6 May | West Clacton & Jaywick SandsTendring | Conservative 42.9% | Gain from Independent |
| 6 May | Andover MillwayTest Valley | Conservative 58.9% | Hold |
| 6 May | Andover St Mary'sTest Valley | Conservative 49.2% | Hold |
| 6 May | Chilworth, Nursling & RownhamsTest Valley | Conservative 65.2% | Hold |
| 6 May | Cleeve HillTewkesbury | Conservative 46.1% | Hold |
| 6 May | Central HarbourThanet | Green 41.1% | Gain from Labour |
| 6 May | Dane ValleyThanet | Conservative 39.4% | Gain from Thanet Independents |
| 6 May | NewingtonThanet | Conservative 37.2% | Gain from Labour |
| 6 May | Clifton with MaidenwayTorbay | Liberal Democrats 45.8% | Hold |
| 6 May | Paddock Wood WestTunbridge Wells | Conservative 38.6% | Hold |
| 6 May | HartlepoolUK Parliament elections | Conservative 53.3% | Not known |
| 6 May | The SampfordsUttlesford | Conservative 44.4% | Not known |
| 6 May | Grove NorthVale Of White Horse | Conservative 44.9% | Gain from Liberal Democrats |
| 6 May | Hatch LaneWaltham Forest | Conservative 50.9% | Hold |
| 6 May | Leamington ClarendonWarwick | Labour 39.5% | Hold |
| 6 May | Hailsham NorthWealden | Liberal Democrats 40.5% | Gain from Conservative |
| 6 May | Hailsham SouthWealden | Conservative 45.2% | Hold |
| 6 May | Heathfield NorthWealden | Conservative 62.1% | Hold |
| 6 May | Heathfield SouthWealden | Conservative 60.0% | Hold |
| 6 May | KELSEY WOLDWest Lindsey | Conservative 62.6% | Hold |
| 6 May | Bampton & ClanfieldWest Oxfordshire | Conservative 64.4% | Hold |
| 6 May | AbbeygateWest Suffolk | Green 45.9% | Hold |
| 6 May | Clare, Hundon & KedingtonWest Suffolk | Conservative 72.2% | Hold |
| 6 May | LakenheathWest Suffolk | Conservative 50.9% | Gain from Independent |
| 6 May | Moreton HallWest Suffolk | Conservative 52.6% | Gain from Independent |
| 6 May | SouthgateWest Suffolk | Conservative 58.2% | Hold |
| 6 May | Whepstead & WickhambrookWest Suffolk | Conservative 69.8% | Hold |
| 6 May | ChurchillWestminster | Labour 45.6% | Hold |
| 6 May | Elmley Castle and SomervilleWychavon | Conservative 66.7% | Hold |
| 10 Jun | Grove GreenWaltham Forest | Labour 58.4% | Hold |
| 10 Jun | Lea BridgeWaltham Forest | Labour 50.0% | Hold |
| 17 Jun | East GariochAberdeenshire | Conservative | Gain from SNP |
| 17 Jun | Aber ValleyCaerphilly | Plaid Cymru - The Party of Wales | Not known |
| 17 Jun | Elham ValleyKent | Conservative 50.1% | Hold |
| 17 Jun | Upper CulmMid Devon | Conservative 44.5% | Gain from Liberal Democrats |
| 17 Jun | SewellNorfolk | Labour 45.2% | Hold |
| 17 Jun | SewellNorwich | Green 46.1% | Gain from Labour |
| 17 Jun | Old Cleeve and DistrictSomerset West and Taunton | Liberal Democrats 44.9% | Hold |
| 17 Jun | FELBRIDGETandridge | Independent 62.6% | Gain from Conservative |
| 24 Jun | Chichester EastChichester | Liberal Democrats 43.0% | Hold |
| 24 Jun | HarlechGwynedd | Plaid Cymru - The Party of Wales 51.1% | Gain from Independent |
| 24 Jun | BryherIsles of Scilly | Independent | Hold |
| 24 Jun | MurdostounNorth Lanarkshire | Independent | Gain from SNP |
| 24 Jun | Wolvey & ShiltonRugby | Conservative 76.6% | Hold |
| 24 Jun | North Curry and RuishtonSomerset West and Taunton | Liberal Democrats 49.6% | Hold |
| 24 Jun | Priory ValeSwindon | Conservative 60.6% | Hold |
| 1 Jul | WrittleChelmsford | Conservative 50.0% | Hold |
| 1 Jul | Cobham & DownsideElmbridge | Liberal Democrats 49.8% | Gain from Conservative |
| 1 Jul | Bush Hill ParkEnfield | Conservative 55.2% | Hold |
| 1 Jul | TollingtonIslington | Labour 56.6% | Hold |
| 1 Jul | BridgeNewark And Sherwood | Conservative 34.1% | Gain from Independent |
| 1 Jul | HeneageNorth East Lincolnshire | Conservative 41.9% | Hold |
| 1 Jul | Penkhull and StokeStoke On Trent | Conservative 40.6% | Gain from City Independents |
| 8 Jul | FenitonEast Devon | Conservative 53.5% | Not known |
| 8 Jul | Honiton St Michael'sEast Devon | Labour 58.0% | Gain from Liberal Democrats |
| 8 Jul | Aldeburgh & LeistonEast Suffolk | Green 42.2% | Gain from Conservative |
| 8 Jul | Mark HallHarlow | Conservative 46.4% | Hold |
| 8 Jul | St Neots EastHuntingdonshire | Independent 42.5% | Gain from Labour |
| 8 Jul | Ardingly and BalcombeMid Sussex | Green 36.9% | Gain from Conservative |
| 15 Jul | TividaleSandwell | Conservative 52.6% | Gain from Labour |
| 22 Jul | Fortune GreenCamden | Liberal Democrats 46.7% | Hold |
| 22 Jul | Alkham & Capel-le-FerneDover | Conservative 48.7% | Hold |
| 22 Jul | Humberstone & HamiltonLeicester | Conservative 44.7% | Gain from Labour |
| 22 Jul | Congresbury & PuxtonNorth Somerset | Green 64.5% | Not known |
| 22 Jul | Tyn-y-nantRhondda Cynon Taf | Labour 80.9% | Hold |
| 22 Jul | StainesSpelthorne | Green 44.0% | Gain from Conservative |
| 22 Jul | Cliftonville EastThanet | Conservative 74.5% | Hold |
| 22 Jul | LiscardWirral | Labour 53.6% | Hold |
| 29 Jul | Pitsea North WestBasildon | Conservative 56.5% | Gain from Labour |
| 29 Jul | East Retford SouthBassetlaw | Conservative 40.1% | Gain from Labour |
| 29 Jul | Knaresborough Scriven ParkHarrogate | Liberal Democrats 56.6% | Gain from Conservative |
| 29 Jul | Gaywood SouthNorfolk | Liberal Democrats 35.7% | Gain from Conservative |
| 29 Jul | Fellgate and HedworthSouth Tyneside | Labour 49.1% | Hold |
| 5 Aug | East Livingston and East CalderWest Lothian | SNP | Hold |
| 12 Aug | Orwell & VillagesEast Suffolk | Conservative 45.9% | Hold |
| 12 Aug | Inverness WestHighland | Liberal Democrats | Gain from SNP |
| 12 Aug | Wick and East CaithnessHighland | Liberal Democrats | Gain from SNP |
| 12 Aug | Dalry and West KilbrideNorth Ayrshire | Conservative | Gain from SNP |
| 12 Aug | GrangeSouth Lakeland | Liberal Democrats 66.2% | Hold |
| 12 Aug | WeaversTower Hamlets | Aspire 46.5% | Not known |
| 19 Aug | Mid FormartineAberdeenshire | Conservative | Gain from SNP |
| 19 Aug | Downs NorthAshford | Green 51.8% | Gain from Conservative |
| 19 Aug | SandwichDover | Conservative 51.6% | Hold |
| 19 Aug | East Wolds & CoastalEast Riding Of Yorkshire | Conservative 54.0% | Hold |
| 19 Aug | Wiltshire PolicePolice and Crime Commissioner for Wiltshire | Conservative | Hold |
| 19 Aug | LittlemoorRibble Valley | Liberal Democrats 49.0% | Hold |
| 19 Aug | PrimroseRibble Valley | Liberal Democrats 43.9% | Hold |
| 19 Aug | Oakham SouthRutland | Liberal Democrats 67.8% | Hold |
| 26 Aug | Corby and HaytonCumbria | Liberal Democrats 71.0% | Not known |
| 26 Aug | Princes ParkMedway | Conservative 67.4% | Hold |
| 26 Aug | Strood NorthMedway | Labour 37.1% | Hold |
| 26 Aug | GraigNewport | Conservative 50.2% | Hold |
| 2 Sept | ParkCalderdale | Labour 82.9% | Hold |
| 2 Sept | RyburnCalderdale | Conservative 53.6% | Hold |
| 2 Sept | Wilmslow Dean RowCheshire East | Residents of Wilmslow 50.7% | Hold |
| 9 Sept | CastleNewcastle Upon Tyne | Liberal Democrats 42.5% | Hold |
| 9 Sept | Barlow & HolmesfieldNorth East Derbyshire | Conservative 69.0% | Hold |
| 9 Sept | Killamarsh EastNorth East Derbyshire | Labour 49.9% | Gain from Conservative |
| 9 Sept | CamperdownNorth Tyneside | Labour 66.7% | Hold |
| 9 Sept | SealesSouth Derbyshire | Independent 39.7% | Gain from Conservative |
| 9 Sept | Cleadon and East BoldonSouth Tyneside | Conservative 35.1% | Hold |
| 16 Sept | HobbayneEaling | Labour 52.2% | Hold |
| 16 Sept | TenburyMalvern Hills | Independent 55.9% | Gain from Conservative |
| 16 Sept | LadgateMiddlesbrough | Independent 39.5% | Gain from Labour |
| 16 Sept | Firth ParkSheffield | Labour 40.2% | Hold |
| 23 Sept | Shepshed WestCharnwood | Conservative 43.6% | Hold |
| 23 Sept | Soham NorthEast Cambridgeshire | Conservative 50.8% | Gain from Liberal Democrats |
| 23 Sept | Exe ValleyEast Devon | Liberal Democrats 36.9% | Hold |
| 23 Sept | CuddingtonEpsom And Ewell | Residents' Association of Cuddington 52.0% | Hold |
| 23 Sept | Wormholt and White CityHammersmith and Fulham | Labour 70.0% | Hold |
| 23 Sept | Kendal NorthSouth Lakeland | Liberal Democrats 46.9% | Hold |
| 28 Sept | BrundallBroadland | Green 35.8% | Gain from Conservative |
| 28 Sept | Old Catton and Sprowston WestBroadland | Conservative 50.0% | Hold |
| 30 Sept | Horndean DownsEast Hampshire | Green 49.2% | Gain from Conservative |
| 30 Sept | Tutbury and OutwoodsEast Staffordshire | Conservative 44.4% | Hold |
| 30 Sept | Penrith WestEden | Liberal Democrats 43.5% | Hold |
| 30 Sept | HettonSunderland | Labour 32.6% | Hold |
| 30 Sept | PriorySwale | Liberal Democrats 38.0% | Hold |
| 30 Sept | The RowsWest Suffolk | Conservative 65.2% | Not known |
| 7 Oct | PenyfforddFlintshire | Labour 60.4% | Hold |
| 7 Oct | SherwoodNottingham | Labour 47.8% | Hold |
| 7 Oct | St Ann'sNottingham | Labour 65.5% | Hold |
| 7 Oct | MustersRushcliffe | Liberal Democrats 45.3% | Hold |
| 7 Oct | Comeytrowe and TrullSomerset | Liberal Democrats 63.2% | Hold |
| 7 Oct | Wilton and SherfordSomerset West and Taunton | Liberal Democrats 56.9% | Hold |
| 7 Oct | Cranleigh EastWaverley | Liberal Democrats 56.8% | Hold |
| 14 Oct | Falkirk SouthFalkirk | SNP | Hold |
| 14 Oct | Pinner SouthHarrow | Conservative 60.5% | Hold |
| 14 Oct | Frimley GreenSurrey Heath | Conservative 48.5% | Gain from Liberal Democrats |
| 14 Oct | Leigh WestWigan | Labour 55.9% | Hold |
| 21 Oct | Yardley EastBirmingham | Liberal Democrats 65.3% | Hold |
| 21 Oct | ForestHorsham | Liberal Democrats 47.4% | Hold |
| 21 Oct | Rainworth South and BlidworthNewark And Sherwood | Independent 66.2% | Gain from Labour |
| 28 Oct | Bromley CrossBolton | Conservative 70.0% | Hold |
| 28 Oct | Currock and UpperbyCarlisle | Labour 57.5% | Hold |
| 28 Oct | SouthLuton | Labour 44.1% | Hold |
| 28 Oct | Grantham ArnoldfieldSouth Kesteven | Conservative 65.0% | Hold |
| 28 Oct | Stamford All SaintsSouth Kesteven | Independent 69.9% | Gain from Conservative |
| 28 Oct | KinverSouth Staffordshire | Conservative 74.1% | Hold |
| 28 Oct | Wombourne South EastSouth Staffordshire | Conservative 50.3% | Hold |
| 28 Oct | Gresford East & WestWrexham | Conservative 42.7% | Not known |
| 4 Nov | LonglevensGloucester | Liberal Democrats 60.3% | Hold |
| 4 Nov | Huntingdon EastHuntingdonshire | Liberal Democrats 55.3% | Not known |
| 4 Nov | Oakham North WestRutland | Labour 62.6% | Gain from Conservative |
| 4 Nov | Blackfriars and TrinitySalford | Labour 51.8% | Hold |
| 4 Nov | NORTH MEOLSWest Lancashire | Conservative 64.9% | Hold |
| 4 Nov | BourneWest Sussex | Liberal Democrats 51.9% | Gain from Conservative |
| 11 Nov | HeathCardiff | Labour 47.1% | Hold |
| 11 Nov | LlandrilloDenbighshire | Plaid Cymru - The Party of Wales 44.0% | Not known |
| 11 Nov | University and Scotforth RuralLancaster | Labour 46.1% | Hold |
| 11 Nov | Melton DorianMelton | Conservative 56.0% | Hold |
| 11 Nov | MetheringhamNorth Kesteven | Lincolnshire Independents Lincolnshire First 45.0% | Hold |
| 11 Nov | Sleaford CastleNorth Kesteven | Conservative 45.3% | Not known |
| 11 Nov | Thanet VillagesThanet | Green 60.0% | Hold |
| 18 Nov | GorrellCanterbury | Green 43.9% | Gain from Labour |
| 18 Nov | AnfieldLiverpool | Labour 55.9% | Hold |
| 18 Nov | ClubmoorLiverpool | Labour 54.5% | Hold |
| 18 Nov | KirkdaleLiverpool | Labour 61.7% | Hold |
| 18 Nov | ChorltonManchester | Labour 52.1% | Hold |
| 18 Nov | CroptonRyedale | The Liberal Party 39.6% | Hold |
| 18 Nov | Bamber Bridge EastSouth Ribble | Labour 53.7% | Hold |
| 18 Nov | Brockworth EastTewkesbury | Independent 68.3% | Hold |
| 18 Nov | Bere FerrersWest Devon | Conservative 32.5% | Gain from Liberal Democrats |
| 25 Nov | Maryport SouthAllerdale | Labour 52.9% | Not known |
| 25 Nov | Lee Chapel NorthBasildon | Labour 39.8% | Hold |
| 25 Nov | Halton CastleHalton | Labour 60.3% | Hold |
| 25 Nov | Raskelf and White HorseHambleton | Conservative 55.7% | Hold |
| 25 Nov | Carnforth & MillheadLancaster | Labour 57.7% | Hold |
| 25 Nov | KnuttonNewcastle-under-Lyme | Conservative 51.1% | Gain from Labour |
| 25 Nov | Bar PoolNuneaton and Bedworth | Conservative 55.3% | Hold |
| 25 Nov | North Yorkshire PolicePolice, Fire and Crime Commissioner for North Yorkshire by-election | Conservative | Not known |
| 25 Nov | Speldhurst & BidboroughTunbridge Wells | Tunbridge Wells Alliance 49.8% | Gain from Conservative |
| 25 Nov | BedfordWandsworth | Labour 40.2% | Hold |
| 25 Nov | HorringerWest Suffolk | Conservative 47.7% | Hold |
| 25 Nov | BrynWigan | Labour 42.0% | Gain from Independent |
| 25 Nov | OxtonWirral | Liberal Democrats 68.3% | Hold |
| 30 Nov | Franche & Habberley NorthWyre Forest | Conservative 41.0% | Not known |
| 2 Dec | HillsideAdur | Conservative 56.2% | Hold |
| 2 Dec | HermitageBreckland | Conservative 45.0% | Hold |
| 2 Dec | Fort William and ArdnamurchanHighland | SNP | Hold |
| 2 Dec | BareLancaster | Liberal Democrats 33.1% | Gain from Morecambe Bay Independents |
| 2 Dec | Upper Lune ValleyLancaster | Liberal Democrats 63.1% | Gain from Conservative |
| 2 Dec | VictoriaNewport | Labour 64.6% | Hold |
| 2 Dec | StalhamNorth Norfolk | Conservative 55.2% | Gain from Liberal Democrats |
| 2 Dec | WhitnashWarwick | Whitnash Residents Association 55.2% | Not known |
| 2 Dec | HartfieldWealden | Green 55.8% | Gain from Conservative |
| 2 Dec | MarineWorthing | Labour 50.2% | Hold |
| 9 Dec | Old BracknellBracknell Forest | Labour 61.1% | Gain from Conservative |
| 9 Dec | Anston and WoodsettsRotherham | Liberal Democrats 40.4% | Gain from Conservative |
| 9 Dec | Aughton and SwallownestRotherham | Labour 49.8% | Hold |
| 9 Dec | CastleTonbridge And Malling | Green 59.3% | Gain from Conservative |
| 9 Dec | Kings HillTonbridge And Malling | Conservative 59.3% | Hold |
| 9 Dec | West Malling and LeybourneTonbridge And Malling | Liberal Democrats 49.5% | Hold |
| 9 Dec | NorthamTorridge | Conservative 38.7% | Hold |
| 14 Dec | Paisley SoutheastRenfrewshire | Not recorded | Hold |
| 16 Dec | Lomond NorthArgyll and Bute | Conservative | Gain from SNP |
| 16 Dec | HighfieldAshford | Green 40.0% | Gain from Conservative |
| 16 Dec | CaerauBridgend | Independent 48.8% | Gain from Labour |
| 16 Dec | Roffey SouthHorsham | Liberal Democrats 41.5% | Hold |
| 16 Dec | Armitage with HandsacreLichfield | Conservative 60.3% | Hold |
| 16 Dec | Rochester EastMedway | Labour 63.3% | Hold |
| 16 Dec | North OrmesbyMiddlesbrough | Labour 74.5% | Gain from Independent |
| 16 Dec | Hexham EastNorthumberland | Liberal Democrats 47.3% | Gain from Independent |
| 16 Dec | Dawley & AqueductTelford & Wrekin | Labour 55.8% | Hold |
| 16 Dec | PleckWalsall | Labour 64.6% | Hold |
| 16 Dec | Tilehurst South & HolybrookWest Berkshire | Conservative 42.4% | Hold |
| 16 Dec | NettlehamWest Lindsey | Liberal Democrats 51.0% | Hold |
| 23 Dec | Bransgore and BurleyNew Forest | Independent 44.3% | Gain from Conservative |
