All years
2004 council by-elections
245 by-elections on our record, 61 of them won by a different party from last time.
Gains and losses by party
| Party | Gained | Lost | Net |
|---|---|---|---|
| Conservative | 30 | 14 | ▲ +16 |
| Respect | 1 | 0 | ▲ +1 |
| SNP | 2 | 1 | ▲ +1 |
| Fylde | 1 | 0 | ▲ +1 |
| BNP | 1 | 0 | ▲ +1 |
| Green | 1 | 0 | ▲ +1 |
| MBI | 0 | 1 | ▼ -1 |
| Independent | 4 | 9 | ▼ -5 |
| Liberal Democrats | 14 | 21 | ▼ -7 |
| Labour | 7 | 15 | ▼ -8 |
Every by-election
| Date | Ward | Winner | Previously |
|---|---|---|---|
| 15 Jan | Talbot and Branksome WoodsBournemouth | Conservative 52.9% | Hold |
| 15 Jan | DolforwynPowys | Not recorded | Not known |
| 15 Jan | Dundonald and LoansSouth Ayrshire | Conservative 55.8% | Hold |
| 22 Jan | North NailbourneCanterbury | Conservative 50.9% | Hold |
| 22 Jan | Charlton KingsCheltenham | Conservative 47.0% | Hold |
| 22 Jan | St NicholasHerefordshire | Liberal Democrats 37.0% | Hold |
| 22 Jan | CockettSwansea | Plaid Cymru - The Party of Wales 37.8% | Not known |
| 22 Jan | CentralSwindon | Labour 37.9% | Gain from Liberal Democrats |
| 29 Jan | Meopham NorthGravesham | Conservative 79.8% | Hold |
| 29 Jan | Stroud GreenHaringey | Liberal Democrats 53.7% | Gain from Labour |
| 5 Feb | HaleBarnet | Labour 43.7% | Hold |
| 5 Feb | Lydney EastForest Of Dean | Conservative 62.9% | Gain from Labour |
| 5 Feb | FawleyHampshire | Liberal Democrats 66.9% | Not known |
| 5 Feb | All SaintsHertfordshire | Conservative 52.5% | Not known |
| 5 Feb | Alrewas & FradleyLichfield | Conservative 53.8% | Hold |
| 5 Feb | Alrewas & Fradley [merged 9e884b9d]Lichfield | Conservative 53.8% | Not known |
| 5 Feb | Holbury and North BlackfieldNew Forest | Liberal Democrats 75.2% | Hold |
| 5 Feb | Felixstowe FerrySuffolk | Conservative 65.5% | Not known |
| 5 Feb | YoxfordSuffolk Coastal | Liberal Democrats 45.2% | Gain from Conservative |
| 5 Feb | Yoxford [merged fdffc6c0]Suffolk Coastal | Liberal Democrats 45.2% | Not known |
| 12 Feb | Houghton, Haynes, Southill and Old WardenMid Bedfordshire | Conservative 52.0% | Hold |
| 12 Feb | East WalworthSouthwark | Liberal Democrats 56.1% | Hold |
| 12 Feb | HaygateTelford & Wrekin | Conservative 39.2% | Hold |
| 12 Feb | Newport NorthTelford & Wrekin | Conservative 40.0% | Gain from Liberal Democrats |
| 19 Feb | SidemoorBromsgrove | Labour 52.3% | Hold |
| 19 Feb | MexboroughDoncaster | Liberal Democrats 56.8% | Hold |
| 19 Feb | MexboroughDoncaster Metropolitan Borough Council | Liberal Democrats 56.8% | Not known |
| 19 Feb | RavenstonedaleEden | Conservative 51.5% | Gain from Independent |
| 19 Feb | HeachamKing's Lynn And West Norfolk | Conservative 44.2% | Gain from Independent |
| 19 Feb | DorchesterOxfordshire | Conservative 81.7% | Not known |
| 19 Feb | Henley SouthOxfordshire | Conservative 54.9% | Not known |
| 26 Feb | Woodhouse CloseCounty Durham | Labour 66.3% | Hold |
| 26 Feb | St. Davids & PennsylvaniaDevon | Liberal Democrats 41.3% | Not known |
| 26 Feb | DuryardExeter | Liberal Democrats 47.1% | Hold |
| 26 Feb | Heysham SouthLancaster | Conservative 36.1% | Gain from MBI |
| 26 Feb | KessinglandWaveney | Conservative 39.3% | Gain from Labour |
| 26 Feb | Woodhouse CloseWear Valley | Labour 66.3% | Not known |
| 26 Feb | Chippenham SheldonWiltshire | Liberal Democrats 57.0% | Not known |
| 4 Mar | Maryport EastCumbria | Labour 57.5% | Not known |
| 4 Mar | Muswell HillHaringey | Liberal Democrats 69.5% | Hold |
| 4 Mar | Woking WestSurrey | Liberal Democrats 57.2% | Not known |
| 4 Mar | Frodsham SouthVale Royal | Conservative 47.9% | Hold |
| 11 Mar | Hedingham and MaplesteadBraintree | Liberal Democrats 45.8% | Gain from Conservative |
| 11 Mar | Redruth NorthCornwall | Labour 32.3% | Hold |
| 11 Mar | CarnforthLancaster | Labour 48.5% | Hold |
| 11 Mar | Melton SysonbyMelton | Conservative 45.9% | Hold |
| 11 Mar | Southborough & High BroomsTunbridge Wells | Conservative 41.0% | Not known |
| 11 Mar | Southborough and High BroomsTunbridge Wells | Conservative 41.0% | Gain from Labour |
| 18 Mar | PlantationBedfordshire | Conservative 70.3% | Not known |
| 18 Mar | Morpeth StobhillCastle Morpeth | Independent 28.4% | Gain from Labour |
| 18 Mar | Alderney [merged 4c862fd6]Poole | Liberal Democrats 59.9% | Hold |
| 18 Mar | Alderney [merged c873cbef]Poole | Liberal Democrats 59.9% | Not known |
| 18 Mar | WoodlandsScarborough | Independent 38.6% | Gain from Labour |
| 25 Mar | WinslowAylesbury Vale | Conservative 54.2% | Hold |
| 25 Mar | Town CentreFalkirk | Labour 38.9% | Hold |
| 25 Mar | Friary & St. NicolasGuildford | Liberal Democrats 53.1% | Not known |
| 25 Mar | Friary and St NicolasGuildford | Liberal Democrats 54.8% | Hold |
| 25 Mar | MyddleShropshire | Conservative 50.3% | Not known |
| 1 Apr | Queens CrossAberdeen | Conservative 46.9% | Hold |
| 1 Apr | WampoolAllerdale | Conservative 69.7% | Gain from Liberal Democrats |
| 1 Apr | BelfordBerwick-upon-Tweed | Conservative 53.7% | Not known |
| 1 Apr | Staniland SouthBoston | Labour 46.0% | Hold |
| 1 Apr | Staniland South [merged 9fa30243]Boston | Labour 46.0% | Not known |
| 1 Apr | Crewe SouthCheshire | Liberal Democrats 43.3% | Not known |
| 1 Apr | Bennetts EndDacorum | Labour 52.7% | Hold |
| 5 Apr | VerulamSt. Albans | Liberal Democrats 49.4% | Not known |
| 15 Apr | St. Margarets-at-CliffeDover | Conservative 60.5% | Hold |
| 15 Apr | ChaseEnfield | Conservative 65.3% | Gain from Liberal Democrats |
| 15 Apr | WoodbridgeSuffolk | Conservative 45.2% | Not known |
| 22 Apr | Loundsley GreenChesterfield | Liberal Democrats 65.7% | Hold |
| 22 Apr | Loundsley Green [merged 962e0272]Chesterfield | Liberal Democrats 65.7% | Not known |
| 22 Apr | Wivenhoe QuayColchester | Labour 34.4% | Not known |
| 22 Apr | Wivenhoe Quay [merged 64267b74]Colchester | Labour 34.4% | Not known |
| 22 Apr | Folkestone EastFolkestone And Hythe | Conservative 52.5% | Gain from Liberal Democrats |
| 22 Apr | Folkestone EastShepway | Conservative 52.5% | Gain from Liberal Democrats |
| 22 Apr | Bradley Stoke Baileys CourtSouth Gloucestershire | Liberal Democrats 44.8% | Hold |
| 22 Apr | MadeleyTelford & Wrekin | Labour 29.1% | Not known |
| 22 Apr | Farnham FirgroveWaverley | Conservative 47.0% | Gain from Liberal Democrats |
| 29 Apr | West HallamDerbyshire | Conservative 56.8% | Not known |
| 29 Apr | South RuislipHillingdon | Liberal Democrats 34.3% | Gain from Conservative |
| 29 Apr | Ashford South EastKent | Liberal Democrats 34.1% | Not known |
| 29 Apr | Porthleven and SithneyKerrier | Independent 88.6% | Hold |
| 29 Apr | ThameOxfordshire | Liberal Democrats 46.5% | Not known |
| 29 Apr | Leyland St AmbroseSouth Ribble | Liberal Democrats 49.4% | Hold |
| 29 Apr | Leyland St Mary'sSouth Ribble | Conservative 51.5% | Gain from Liberal Democrats |
| 6 May | The SwaffhamsEast Cambridgeshire | Conservative 50.4% | Gain from Liberal Democrats |
| 6 May | New ParkHarrogate | Liberal Democrats 65.4% | Hold |
| 6 May | Kelso and District NorthScottish Borders | Conservative 43.8% | Not known |
| 20 May | Lawrence HillBristol, City of | Liberal Democrats 43.6% | Hold |
| 20 May | RisbygateSt Edmundsbury | Not recorded | Hold |
| 20 May | Roundham with HydeTorbay | Conservative 36.9% | Gain from Liberal Democrats |
| 10 Jun | FulbournCambridgeshire | Conservative 45.5% | Not known |
| 10 Jun | Corfe MullenDorset | Liberal Democrats 60.6% | Not known |
| 10 Jun | MincinglakeExeter | Labour 45.6% | Hold |
| 10 Jun | Red LodgeForest Heath | Conservative 44.3% | Gain from Independent |
| 10 Jun | HanboroughOxfordshire | Liberal Democrats 52.9% | Not known |
| 10 Jun | WadhurstWealden | Conservative 63.2% | Hold |
| 1 Jul | Cullompton SouthMid Devon | Conservative 44.4% | Gain from Independent |
| 1 Jul | Buckie WestMoray | Independent 63.6% | Not known |
| 8 Jul | ColumnShrewsbury and Atcham | Conservative 69.3% | Hold |
| 15 Jul | ValenceBarking and Dagenham | Labour 41.6% | Hold |
| 15 Jul | EarcroftBlackburn with Darwen | Not recorded | Hold |
| 15 Jul | Rainham & WenningtonHavering | Labour 31.2% | Not known |
| 15 Jul | CaytonNorth Yorkshire | Conservative 75.1% | Hold |
| 15 Jul | WoldsRyedale | Conservative 55.9% | Hold |
| 15 Jul | Sir Moses MontefioreThanet | Labour 33.2% | Hold |
| 15 Jul | Melksham NorthWest Wiltshire | Labour 44.7% | Gain from Liberal Democrats |
| 15 Jul | Trowbridge CollegeWest Wiltshire | Liberal Democrats 52.7% | Hold |
| 22 Jul | Boscombe WestBournemouth | Liberal Democrats 42.9% | Hold |
| 22 Jul | SarnBridgend | Labour 58.2% | Hold |
| 22 Jul | GowerConwy | Plaid Cymru - The Party of Wales 76.1% | Not known |
| 22 Jul | Flitwick EastMid Bedfordshire | Liberal Democrats 49.6% | Hold |
| 22 Jul | Flitwick East [merged e32728a3]Mid Bedfordshire | Liberal Democrats 49.6% | Not known |
| 22 Jul | Burslem SouthStoke On Trent | Not recorded | Not known |
| 22 Jul | PierTendring | Conservative 36.0% | Hold |
| 29 Jul | BoughtonChester | Labour 44.9% | Hold |
| 29 Jul | BoughtonCity of Chester | Labour 44.9% | Hold |
| 29 Jul | MackworthDerby | Labour 41.0% | Hold |
| 29 Jul | Mackworth [merged 72f8b2a1]Derby [merged 9923a578] | Labour 41.0% | Hold |
| 29 Jul | Shooters HillGreenwich | Labour 43.1% | Hold |
| 29 Jul | Ardrossan NorthNorth Ayrshire | Conservative 30.5% | Gain from Labour |
| 29 Jul | Biddulph EastStaffordshire Moorlands | Labour 79.4% | Hold |
| 29 Jul | St. Dunstans & Stepney GreenTower Hamlets | Respect 31.1% | Gain from Labour |
| 5 Aug | Sleaford CastleNorth Kesteven | Conservative 29.8% | Hold |
| 12 Aug | BarwellHinckley And Bosworth | Liberal Democrats 45.7% | Gain from Conservative |
| 12 Aug | SpeysideMoray | SNP 43.9% | Gain from Independent |
| 12 Aug | SpeysideMoray | SNP 43.9% | Not known |
| 12 Aug | Brampton & WaltonNorth East Derbyshire | Liberal Democrats 44.6% | Gain from Conservative |
| 19 Aug | Gerrards CrossBuckinghamshire | Conservative 78.2% | Not known |
| 19 Aug | MenstrieClackmannanshire | SNP 56.2% | Not known |
| 19 Aug | Tillicoultry WestClackmannanshire | SNP 36.9% | Hold |
| 19 Aug | North RoadDarlington | Liberal Democrats 48.5% | Hold |
| 19 Aug | ParkFylde | Fylde 45.7% | Gain from Conservative |
| 19 Aug | Market Harborough - LoganHarborough | Liberal Democrats 51.9% | Hold |
| 19 Aug | Burnham Lent RiseSouth Bucks | Conservative 70.1% | Hold |
| 26 Aug | Congleton NorthCongleton | Conservative 43.0% | Gain from Labour |
| 26 Aug | Congleton NorthCongleton | Not recorded | Not known |
| 26 Aug | Melton CravenMelton | Independent 43.9% | Hold |
| 26 Aug | Melton DorianMelton | Conservative 60.0% | Gain from Independent |
| 26 Aug | East MarshNorth East Lincolnshire | Liberal Democrats 63.7% | Gain from Labour |
| 26 Aug | Bothwell SouthSouth Lanarkshire | Conservative 48.4% | Gain from Labour |
| 26 Aug | Lostock and WinchamVale Royal | Conservative 46.0% | Gain from Liberal Democrats |
| 9 Sept | Rowlands CastleEast Hampshire | Liberal Democrats 58.3% | Hold |
| 9 Sept | Bexhill EastEast Sussex | Conservative 61.6% | Not known |
| 9 Sept | SackvilleRother | Conservative 51.7% | Hold |
| 9 Sept | SackvilleRother | Conservative 51.5% | Hold |
| 9 Sept | Wiverton [merged 7e92779f]Rushcliffe | Conservative 49.2% | Not known |
| 9 Sept | BarninghamSt Edmundsbury | Conservative | Hold |
| 9 Sept | MillwallTower Hamlets | Conservative 34.8% | Gain from Labour |
| 16 Sept | GoresbrookBarking and Dagenham | BNP 51.9% | Gain from Labour |
| 16 Sept | Edmondsley and WaldridgeChester-le-Street | Labour 42.2% | Hold |
| 16 Sept | Howard TownHigh Peak | Labour 36.7% | Hold |
| 16 Sept | SimmondleyHigh Peak | Liberal Democrats 40.2% | Hold |
| 16 Sept | Knutsford NetherMacclesfield | Conservative 61.1% | Hold |
| 16 Sept | Knutsford Nether [merged c5f664f7]Macclesfield | Conservative 61.1% | Hold |
| 16 Sept | Poughill and StrattonNorth Cornwall | Liberal Democrats 63.0% | Hold |
| 16 Sept | EastonSouth Norfolk | Conservative 57.1% | Hold |
| 16 Sept | Easton [merged 5752d83a]South Norfolk | Conservative 57.1% | Not known |
| 16 Sept | Uckfield RidgewoodWealden | Liberal Democrats 60.4% | Hold |
| 23 Sept | Laindon ParkBasildon | Labour 42.3% | Gain from Conservative |
| 23 Sept | CowpenBlyth Valley | Labour 69.0% | Hold |
| 23 Sept | Basildon Westley HeightsEssex | Liberal Democrats 45.0% | Not known |
| 23 Sept | AylestoneLeicester | Conservative 45.9% | Gain from Liberal Democrats |
| 23 Sept | AylestoneLeicester City Council | Conservative 45.9% | Not known |
| 23 Sept | Sonning CommonSouth Oxfordshire | Conservative 70.6% | Hold |
| 30 Sept | Boyce [merged c3e8b433]Castle Point | Conservative 64.0% | Not known |
| 30 Sept | Selsey NorthChichester | Liberal Democrats 35.3% | Gain from Conservative |
| 30 Sept | Roman BankFenland | Conservative 50.2% | Hold |
| 30 Sept | Heston WestHounslow | Labour 40.7% | Hold |
| 30 Sept | LongholmeRossendale | Conservative 58.5% | Hold |
| 7 Oct | VillageBarking and Dagenham | Labour 44.7% | Hold |
| 7 Oct | Hangleton & KnollBrighton & Hove | Conservative 42.1% | Gain from Labour |
| 7 Oct | Hangleton and KnollBrighton & Hove | Conservative 42.1% | Gain from Labour |
| 7 Oct | BartonCanterbury | Conservative 44.8% | Gain from Liberal Democrats |
| 7 Oct | Barton [merged 6f9b4712]Canterbury | Conservative 44.8% | Not known |
| 7 Oct | HamptonRichmond upon Thames | Liberal Democrats 57.9% | Gain from Conservative |
| 14 Oct | Llandrindod SouthPowys | Liberal Democrats 53.3% | Gain from Independent |
| 14 Oct | Coupe Green & Gregson LaneSouth Ribble | Idle Toad 44.0% | Not known |
| 14 Oct | Burham Eccles & WouldhamTonbridge and Malling | Conservative 58.6% | Not known |
| 14 Oct | Bowling/Milton/Old KilpatrickWest Dunbartonshire | Independent 34.5% | Gain from SNP |
| 14 Oct | Wey ValleyWeymouth and Portland | Conservative 41.3% | Hold |
| 21 Oct | BerechurchColchester | Labour 51.5% | Gain from Liberal Democrats |
| 21 Oct | Berechurch [merged c5d199ff]Colchester | Labour 51.5% | Not known |
| 21 Oct | Cowes CentralIsle Of Wight | Conservative 38.5% | Not known |
| 21 Oct | Alfrick and LeighMalvern Hills | Liberal Democrats 43.2% | Not known |
| 21 Oct | Barking and SomershamMid Suffolk | Liberal Democrats 51.1% | Hold |
| 21 Oct | Claydon & BarhamMid Suffolk | Liberal Democrats 57.7% | Hold |
| 21 Oct | CarfaxOxford | Green 33.3% | Gain from Liberal Democrats |
| 21 Oct | GreyfriarsSouth Kesteven | Conservative 47.4% | Hold |
| 21 Oct | Great Dunmow SouthUttlesford | Liberal Democrats 61.9% | Hold |
| 21 Oct | CroylandWellingborough | Conservative 39.4% | Hold |
| 28 Oct | ColintonEdinburgh | Conservative 46.0% | Hold |
| 28 Oct | Kirk HallamErewash | Labour 52.1% | Gain from Liberal Democrats |
| 28 Oct | ManorForest Heath | Conservative 66.9% | Gain from Independent |
| 28 Oct | OgbourneKennet | Conservative 60.0% | Not known |
| 28 Oct | ValleyWaltham Forest | Conservative 37.0% | Hold |
| 4 Nov | KnightonLeicester | Conservative 45.9% | Gain from Liberal Democrats |
| 4 Nov | KnightonLeicester City Council | Conservative 45.9% | Not known |
| 4 Nov | Westward Ho!Torridge | Independent 40.7% | Not known |
| 4 Nov | Wantage CharltonVale Of White Horse | Liberal Democrats 47.4% | Hold |
| 4 Nov | Warwick SouthWarwick | Conservative 56.4% | Hold |
| 11 Nov | Little Baddow, Danbury and SandonChelmsford | Conservative 57.7% | Hold |
| 11 Nov | Stanlow and WolverhamEllesmere Port and Neston | Labour 60.8% | Hold |
| 11 Nov | Cupar NorthFife | Liberal Democrats 34.4% | Hold |
| 11 Nov | Fortis GreenHaringey | Liberal Democrats 57.8% | Hold |
| 11 Nov | GroveKingston upon Thames | Liberal Democrats 52.0% | Hold |
| 11 Nov | SpeysideMoray | Not recorded | Not known |
| 11 Nov | SpeysideMoray | Not recorded | Hold |
| 11 Nov | Easton In GordanoNorth Somerset | Conservative 44.3% | Not known |
| 11 Nov | Easton-in-GordanoNorth Somerset | Conservative 44.3% | Hold |
| 18 Nov | Buckingham SouthAylesbury Vale | Conservative 38.8% | Hold |
| 18 Nov | Buckingham SouthBuckinghamshire | Conservative 51.1% | Not known |
| 18 Nov | Blacon LodgeCity of Chester | Labour 62.9% | Hold |
| 18 Nov | Porthleven and SithneyKerrier | MK 54.5% | Not known |
| 18 Nov | Hoe StreetWaltham Forest | Labour 40.4% | Hold |
| 25 Nov | Hednesford NorthCannock Chase | Labour 46.5% | Hold |
| 25 Nov | Old BarrowCumbria | Not recorded | Not known |
| 25 Nov | Heston EastHounslow | Labour 42.9% | Hold |
| 25 Nov | EcclesSalford | Labour 40.4% | Gain from Liberal Democrats |
| 25 Nov | Eccles [merged 305a003d]Salford | Labour 40.4% | Hold |
| 25 Nov | Old WarleySandwell | Labour 42.3% | Gain from Conservative |
| 25 Nov | DuxfordSouth Cambridgeshire | Liberal Democrats 43.2% | Gain from Conservative |
| 25 Nov | AbbeyTest Valley | Liberal Democrats 50.6% | Gain from Conservative |
| 25 Nov | Davyhulme WestTrafford | Conservative 52.2% | Hold |
| 25 Nov | TimperleyTrafford | Conservative 51.2% | Hold |
| 25 Nov | WinnershWokingham | Liberal Democrats 51.5% | Hold |
| 2 Dec | ClackmannanClackmannanshire | Labour 54.4% | Hold |
| 2 Dec | Battins & BondfieldsHampshire | Liberal Democrats 56.6% | Not known |
| 2 Dec | Bramber Upper Beeding & WoodmancoteHorsham | Liberal Democrats 49.9% | Hold |
| 9 Dec | SlideslowBromsgrove | Liberal Democrats 47.2% | Gain from Conservative |
| 9 Dec | Chiswick HomefieldsHounslow | Conservative 58.1% | Hold |
| 9 Dec | Biddulph NorthStaffordshire Moorlands | Independent 41.4% | Hold |
| 9 Dec | RoebuckStevenage | Labour 52.6% | Hold |
| 9 Dec | Roebuck [merged f00f94a2]Stevenage | Labour 52.6% | Not known |
| 10 Dec | CastleCambridgeshire | Liberal Democrats 55.8% | Not known |
| 16 Dec | ShielfieldBerwick-upon-Tweed | Conservative 52.6% | Not known |
| 16 Dec | SpittalBerwick-upon-Tweed | Independent 61.7% | Gain from Liberal Democrats |
| 16 Dec | ArwenackCarrick | Liberal Democrats 45.5% | Gain from Conservative |
| 16 Dec | BelmontCounty Durham | Liberal Democrats 46.1% | Hold |
| 16 Dec | BelmontDurham | Liberal Democrats 46.1% | Not known |
| 16 Dec | Little Parndon & Town CentreEssex | Labour 43.5% | Not known |
| 16 Dec | InchyraFalkirk | SNP 66.0% | Gain from Independent |
| 16 Dec | Downham MarketNorfolk | Conservative 68.3% | Not known |
| 23 Dec | Oakham South EastRutland | Conservative 64.5% | Hold |
| 23 Dec | Oakham South WestRutland | Conservative 64.5% | Gain from Liberal Democrats |
