Constituency
Party of notional incumbent at 2019 election[11]
Member returned
Party of incumbent at 2024 election
Notes
Aberafan Maesteg
Labour
Stephen Kinnock
Labour
Seat held.
Aberdeen North
Scottish National
Kirsty Blackman
Scottish National
Seat held
Aberdeen South
Scottish National
Stephen Flynn
Scottish National
Seat held
Aberdeenshire North and Moray East
Conservative
Seamus Logan
Scottish National
Gain. Previous incumbent Conservative MP David Duguid stood down
Airdrie and Shotts
Scottish National
Kenneth Stevenson
Labour
Gain. Defeated incumbent SNP MP Anum Qaisar
Aldershot
Conservative
Alex Baker
Labour
Gain. Defeated incumbent Conservative MP Leo Docherty
Aldridge-Brownhills
Conservative
Wendy Morton
Conservative
Seat held
Alloa and Grangemouth
Scottish National
Brian Leishman
Labour
Gain. Defeated incumbent SNP MP John Nicolson (former MP for Ochil and South Perthshire )
Altrincham and Sale West
Conservative
Connor Rand
Labour
Gain. Previous incumbent Conservative MP Graham Brady stood down
Alyn and Deeside
Labour
Mark Tami
Labour
Seat held
Amber Valley
Conservative
Linsey Farnsworth
Labour
Gain. Defeated incumbent Conservative MP Nigel Mills
Angus and Perthshire Glens
Scottish National
Dave Doogan
Scottish National
Seat held.
Arbroath and Broughty Ferry
Scottish National
Stephen Gethins
Scottish National Party
Seat held. Previous incumbent SNP MP Stewart Hosie stood down
Argyll, Bute and South Lochaber
Scottish National
Brendan O'Hara
Scottish National Party
Seat held
Arundel and South Downs
Conservative
Andrew Griffith
Conservative
Seat held
Ashfield
Conservative
Lee Anderson
Reform UK
Gain. Elected as a Conservative MP in 2019
Ashford
Conservative
Sojan Joseph
Labour
Gain. Defeated incumbent Conservative MP Damian Green
Ashton-under-Lyne
Labour
Angela Rayner
Labour
Seat held
Aylesbury
Conservative
Laura Kyrke-Smith
Labour
Gain. Defeated incumbent Conservative MP Rob Butler
Ayr, Carrick and Cumnock
Scottish National
Elaine Stewart
Labour
Gain. Defeated incumbent SNP MP Allan Dorans
Banbury
Conservative
Sean Woodcock
Labour
Gain. Defeated incumbent Conservative MP Victoria Prentis
Bangor Aberconwy
Conservative
Claire Hughes
Labour
Gain. Defeated incumbent Conservative MP Robin Millar (former MP for Aberconwy )
Barking
Labour
Nesil Caliskan
Labour
Seat held. Previous incumbent Labour MP Margaret Hodge stood down
Barnsley North
Labour
Dan Jarvis
Labour
Seat held
Barnsley South
Labour
Stephanie Peacock
Labour
Seat held
Barrow and Furness
Conservative
Michelle Scrogham
Labour
Gain. Defeated incumbent Conservative MP Simon Fell
Basildon and Billericay
Conservative
Richard Holden
Conservative
Seat held. Previous incumbent Conservative MP John Baron stood down. Former MP for North West Durham
Basingstoke
Conservative
Luke Murphy
Labour
Gain. Defeated incumbent Conservative MP Maria Miller
Bassetlaw
Conservative
Jo White
Labour
Gain. Defeated incumbent Conservative MP Brendan Clarke-Smith
Bath
Liberal Democrats
Wera Hobhouse
Liberal Democrats
Seat held
Bathgate and Linlithgow
Scottish National
Kirsteen Sullivan
Labour
Gain. Defeated incumbent SNP MP Martyn Day (former MP for Linlithgow and East Falkirk )
Battersea
Labour
Marsha de Cordova
Labour
Seat held
Beaconsfield
Conservative
Joy Morrissey
Conservative
Seat held
Beckenham and Penge
Labour
Liam Conlon
Labour
Seat held. Previous incumbent Conservative MP Bob Stewart stood down
Bedford
Labour
Mohammad Yasin
Labour
Seat held
Belfast East
Democratic Unionist
Gavin Robinson
Democratic Unionist
Seat held
Belfast North
Sinn Féin
John Finucane
Sinn Féin
Seat held
Belfast South and Mid Down
Social Democratic and Labour
Claire Hanna
Social Democratic and Labour
Seat held
Belfast West
Sinn Féin
Paul Maskey
Sinn Féin
Seat held
Bermondsey and Old Southwark
Labour
Neil Coyle
Labour
Seat held
Berwickshire, Roxburgh and Selkirk
Conservative
John Lamont
Conservative
Seat held
Bethnal Green and Stepney
Labour
Rushanara Ali
Labour
Seat held
Beverley and Holderness
Conservative
Graham Stuart
Conservative
Seat held
Bexhill and Battle
Conservative
Kieran Mullan
Conservative
Seat held. Previous incumbent Conservative MP Huw Merriman stood down
Bexleyheath and Crayford
Conservative
Daniel Francis
Labour
Gain. Previous incumbent Conservative MP David Evennett stood down
Bicester and Woodstock
Conservative
Calum Miller
Liberal Democrats
Gain
Birkenhead
Labour
Alison McGovern
Labour
Seat held. Previous incumbent Labour MP Mick Whitley stood down. Former MP for Wirral South
Birmingham Edgbaston
Labour
Preet Gill
Labour
Seat held
Birmingham Erdington
Labour
Paulette Hamilton
Labour
Seat held. By-elected in 2022
Birmingham Hall Green and Moseley
Labour
Tahir Ali
Labour
Seat held. Former MP for Birmingham Hall Green
Birmingham Hodge Hill and Solihull North
Labour
Liam Byrne
Labour
Seat held. Former MP for Birmingham Hodge Hill
Birmingham Ladywood
Labour
Shabana Mahmood
Labour
Seat held
Birmingham Northfield
Conservative
Laurence Turner
Labour
Gain. Defeated incumbent Conservative MP Gary Sambrook
Birmingham Perry Barr
Labour
Ayoub Khan
Independent
Gain. Defeated incumbent Labour MP Khalid Mahmood
Birmingham Selly Oak
Labour
Alistair Carns
Labour
Seat held. Previous incumbent Labour MP Steve McCabe stood down
Birmingham Yardley
Labour
Jess Phillips
Labour
Seat held
Bishop Auckland
Conservative
Sam Rushworth
Labour
Gain. Previous incumbent Conservative MP Dehenna Davison stood down
Blackburn
Labour
Adnan Hussain
Independent
Gain. Defeated incumbent Labour MP Kate Hollern
Blackley and Middleton South
Labour
Graham Stringer
Labour
Seat held
Blackpool North and Fleetwood
Conservative
Lorraine Beavers
Labour
Gain. Defeated incumbent Conservative MP Paul Maynard
Blackpool South
Conservative
Chris Webb
Labour
Won by Labour at 2024 by-election
Blaenau Gwent and Rhymney
Labour
Nick Smith
Labour
Seat held
Blaydon and Consett
Labour
Liz Twist
Labour
Seat held. Previously incumbent with Conservative MP Richard Holden , who was elected in Basildon and Billericay
Blyth and Ashington
Labour
Ian Lavery
Labour
Seat held
Bognor Regis and Littlehampton
Conservative
Alison Griffiths
Conservative
Seat held. Previous incumbent Conservative MP Nick Gibb stood down
Bolsover
Conservative
Natalie Fleet
Labour
Gain. Defeated incumbent Conservative MP Mark Fletcher
Bolton North East
Conservative
Kirith Entwistle
Labour
Seat held. Previous incumbent Conservative MP Mark Logan stood down
Bolton South and Walkden
Labour
Yasmin Qureshi
Labour
Seat held
Bolton West
Conservative
Phil Brickell
Labour
Gain. Defeated incumbent Conservative MP Chris Green
Bootle
Labour
Peter Dowd
Labour
Seat held
Boston and Skegness
Conservative
Richard Tice
Reform UK
Gain. Defeated incumbent Conservative MP Matt Warman
Bournemouth East
Conservative
Tom Hayes
Labour
Gain. Defeated incumbent Conservative MP Tobias Ellwood
Bournemouth West
Conservative
Jessica Toale
Labour
Gain. Defeated incumbent Conservative MP Conor Burns
Bracknell
Conservative
Peter Swallow
Labour
Gain. Defeated incumbent Conservative MP James Sunderland
Bradford East
Labour
Imran Hussain
Labour
Seat held
Bradford South
Labour
Judith Cummins
Labour
Seat held
Bradford West
Labour
Naz Shah
Labour
Seat held
Braintree
Conservative
James Cleverly
Conservative
Seat held
Brecon, Radnor and Cwm Tawe
Conservative
David Chadwick
Liberal Democrats
Gain. Defeated incumbent Conservative MP Fay Jones
Brent East
Labour
Dawn Butler
Labour
Seat held. Former MP for Brent Central
Brent West
Labour
Barry Gardiner
Labour
Seat held
Brentford and Isleworth
Labour
Ruth Cadbury
Labour
Seat held
Brentwood and Ongar
Conservative
Alex Burghart
Conservative
Seat held
Bridgend
Conservative
Chris Elmore
Labour
Gain. Previously incumbent with Conservative MP Jamie Wallis who stood down
Bridgwater
Conservative
Ashley Fox
Conservative
Seat held. Previous incumbent Conservative MP Ian Liddell-Grainger was defeated in Tiverton and Minehead
Bridlington and The Wolds
Conservative
Charlie Dewhirst
Conservative
Seat held. Previous incumbent Conservative MP Greg Knight stood down
Brigg and Immingham
Conservative
Martin Vickers
Conservative
Seat held
Brighton Kemptown and Peacehaven
Labour
Chris Ward
Labour
Seat held. Previous incumbent Labour MP Lloyd Russell-Moyle stood down
Brighton Pavilion
Green
Siân Berry
Green
Seat held. Previous incumbent Green MP Caroline Lucas stood down
Bristol Central
Labour
Carla Denyer
Green
Gain. Defeated incumbent Labour MP Thangam Debbonaire
Bristol East
Labour
Kerry McCarthy
Labour
Seat held
Bristol North East
Labour
Damien Egan
Labour
Seat held. By-elected in 2024
Bristol North West
Labour
Darren Jones
Labour
Seat held
Bristol South
Labour
Karin Smyth
Labour
Seat held
Broadland and Fakenham
Conservative
Jerome Mayhew
Conservative
Seat held
Bromley and Biggin Hill
Conservative
Peter Fortune
Conservative
Seat held. Previous incumbent Conservative MP Bob Neill stood down
Bromsgrove
Conservative
Bradley Thomas
Conservative
Seat held. Previous incumbent Conservative MP Sajid Javid stood down
Broxbourne
Conservative
Lewis Cocking
Conservative
Seat held. Previous incumbent Conservative MP Charles Walker stood down
Broxtowe
Conservative
Juliet Campbell
Labour
Gain. Defeated incumbent Conservative MP Darren Henry
Buckingham and Bletchley
Conservative
Callum Anderson
Labour
Gain. Defeated contesting Conservative MP Iain Stewart
Burnley
Conservative
Oliver Ryan
Labour
Gain. Defeated incumbent Conservative MP Antony Higginbotham
Burton and Uttoxeter
Conservative
Jacob Collier
Labour
Gain. Defeated incumbent Conservative MP Kate Kniveton
Bury North
Conservative
James Frith
Labour
Gain. Defeated incumbent Conservative MP James Daly
Bury South
Conservative
Christian Wakeford
Labour
Gain. Elected as a Conservative MP in 2019
Bury St Edmunds and Stowmarket
Conservative
Peter Prinsley
Labour
Gain. Previous incumbent Conservative MP Jo Churchill stood down
Caerfyrddin
Conservative
Ann Davies
Plaid Cymru
Defeated incumbent Simon Hart
Caerphilly
Labour
Chris Evans
Labour
Seat held (elected in 2010 in Islwyn)
Caithness, Sutherland and Easter Ross
Scottish National
Jamie Stone
Liberal Democrats
Seat held (Notional gain)
Calder Valley
Conservative
Josh Fenton-Glynn
Labour
Previous incumbent, Craig Whittaker , did not stand
Camborne and Redruth
Conservative
Perran Moon
Labour
Previous incumbent, George Eustice , did not stand
Cambridge
Labour
Daniel Zeichner
Labour
Seat held
Cannock Chase
Conservative
Josh Newbury
Labour
Defeated incumbent Amanda Milling
Canterbury
Labour
Rosie Duffield
Labour
Seat held
Cardiff East
Labour
Jo Stevens
Labour
Seat held
Cardiff North
Labour
Anna McMorrin
Labour
Seat held
Cardiff South and Penarth
Labour
Stephen Doughty
Labour
Seat held
Cardiff West
Labour
Alex Barros-Curtis
Labour
Previous incumbent, Kevin Brennan , did not stand
Carlisle
Conservative
Julie Minns
Labour
Defeated incumbent John Stevenson
Carshalton and Wallington
Conservative
Bobby Dean
Liberal Democrats
Defeated incumbent Elliot Colburn
Castle Point
Conservative
Rebecca Harris
Conservative
Seat held
Central Ayrshire
Scottish National
Alan Gemmell
Labour
Previous incumbent, Philippa Whitford , did not stand
Central Devon
Conservative
Mel Stride
Conservative
Seat held
Central Suffolk and North Ipswich
Conservative [c]
Patrick Spencer
Conservative
Previous incumbent, Dan Poulter , did not stand
Ceredigion Preseli
Plaid Cymru
Ben Lake
Plaid Cymru
Seat held
Chatham and Aylesford
Conservative
Tris Osborne
Labour
Previous incumbent, Tracey Crouch , did not stand
Cheadle
Conservative
Tom Morrison
Liberal Democrats
Defeated incumbent Mary Robinson
Chelmsford
Conservative
Marie Goldman
Liberal Democrats
Defeated incumbent Vicky Ford
Chelsea and Fulham
Conservative
Ben Coleman
Labour
Defeated incumbent Greg Hands
Cheltenham
Conservative
Max Wilkinson
Liberal Democrats
Defeated incumbent Alex Chalk
Chesham and Amersham
Conservative
Sarah Green
Liberal Democrats
Seat held (following 2022 by-election gain)
Chester North and Neston
Labour
Samantha Dixon
Labour
Seat held
Chester South and Eddisbury
Conservative
Aphra Brandreth
Conservative
Previous incumbent, Edward Timpson , did not stand
Chesterfield
Labour
Toby Perkins
Labour
Seat held
Chichester
Conservative
Jess Brown-Fuller
Liberal Democrats
Defeated incumbent Gillian Keegan
Chingford and Woodford Green
Conservative
Iain Duncan Smith
Conservative
Seat held
Chippenham
Conservative
Sarah Gibson
Liberal Democrats
Previous incumbent, Michelle Donelan contested Melksham and Devizes
Chipping Barnet
Conservative
Dan Tomlinson
Labour
Defeated incumbent Theresa Villiers
Chorley
Speaker
Lindsay Hoyle
Speaker
Seat held
Christchurch
Conservative
Christopher Chope
Conservative
Seat held
Cities of London and Westminster
Conservative
Rachel Blake
Labour
Previous incumbent, Nickie Aiken , did not stand
City of Durham
Labour
Mary Foy
Labour
Seat held
Clacton
Conservative
Nigel Farage
Reform UK
Defeated incumbent Giles Watling
Clapham and Brixton Hill
Labour
Bell Ribeiro-Addy
Labour
Seat held
Clwyd East
Conservative
Becky Gittins
Labour
Defeated incumbent, James Davies
Clwyd North
Conservative
Gill German
Labour
Previous incumbent, David Jones , did not stand
Coatbridge and Bellshill
Scottish National
Frank McNally
Labour
Defeated incumbent, Steven Bonnar
Colchester
Conservative
Pam Cox
Labour
Previous incumbent, Will Quince , did not stand
Colne Valley
Conservative
Paul Davies
Labour
Defeated incumbent, Jason McCartney
Congleton
Conservative
Sarah Russell
Labour
Defeated incumbent, Fiona Bruce
Corby and East Northamptonshire
Conservative
Lee Barron
Labour
Defeated incumbent, Tom Pursglove
Coventry East
Labour
Mary Creagh
Labour
Previous incumbent, Colleen Fletcher , did not stand
Coventry North West
Labour
Taiwo Owatemi
Labour
Seat held
Coventry South
Labour
Zarah Sultana
Labour
Seat held
Cowdenbeath and Kirkcaldy
Scottish National
Melanie Ward
Labour
Defeated incumbent, Neale Hanvey
Cramlington and Killingworth
Labour
Emma Foody
Labour
Seat held
Crawley
Conservative
Peter Lamb
Labour
Previous incumbent, Henry Smith , did not stand
Crewe and Nantwich
Conservative
Connor Naismith
Labour
Previous incumbent, Kieran Mullan , stood in a different seat
Croydon East
Labour
Natasha Irons
Labour
New constiuency
Croydon South
Conservative
Chris Philp
Conservative
Seat held
Croydon West
Labour
Sarah Jones
Labour
Seat held
Cumbernauld and Kirkintilloch
Scottish National
Katrina Murray
Labour
Defeated incumbent, Stuart McDonald
Dagenham and Rainham
Labour
Margaret Mullane
Labour
Previous incumbent, Jon Cruddas , did not stand
Darlington
Conservative
Lola McEvoy
Labour
Defeated incumbent, Peter Gibson
Dartford
Conservative
Jim Dickson
Labour
Defeated incumbent, Gareth Johnson
Daventry
Conservative
Stuart Andrew
Conservative
Moved constituencies. Previous incumbent, Chris Heaton-Harris , did not stand
Derby North
Conservative
Catherine Atkinson
Labour
Defeated incumbent, Amanda Solloway
Derby South
Labour
Baggy Shanker
Labour
Previous incumbent, Margaret Beckett , did not stand
Derbyshire Dales
Conservative
John Whitby
Labour
Defeated incumbent, Sarah Dines
Dewsbury and Batley
Labour
Iqbal Mohamed
Independent
New constiuency
Didcot and Wantage
Conservative
Olly Glover
Liberal Democrats
Defeated incumbent, David Johnston
Doncaster Central
Labour
Sally Jameson
Labour
Previous incumbent, Rosie Winterton , did not stand
Doncaster East and the Isle of Axholme
Conservative
Lee Pitcher
Labour
Defeated incumbent, Nick Fletcher
Doncaster North
Labour
Ed Miliband
Labour
Seat held
Dorking and Horley
Conservative
Chris Coghlan
Liberal Democrats
Won new seat
Dover and Deal
Conservative [d]
Mike Tapp
Labour
Previous incumbent, Natalie Elphicke , did not stand
Droitwich and Evesham
Conservative
Nigel Huddleston
Conservative
Seat held
Dudley
Conservative
Sonia Kumar
Labour
Defeated incumbent, Marco Longhi
Dulwich and West Norwood
Labour
Helen Hayes
Labour
Seat held
Dumfries and Galloway
Conservative
John Cooper
Conservative
Previous incumbent, Alister Jack , did not stand
Dumfriesshire, Clydesdale and Tweeddale
Conservative
David Mundell
Conservative
Seat held
Dundee Central
Scottish National
Chris Law
Scottish National
Seat held
Dunfermline and Dollar
Scottish National
Graeme Downie
Labour
Won new seat
Dunstable and Leighton Buzzard
Conservative
Alex Mayer
Labour
Defeated incumbent, Andrew Selous
Dwyfor Meirionnydd
Plaid Cymru
Liz Saville Roberts
Plaid Cymru
Seat held
Ealing Central and Acton
Labour
Rupa Huq
Labour
Seat held
Ealing North
Labour
James Murray
Labour
Seat held
Ealing Southall
Labour
Deirdre Costigan
Labour
Previous incumbent, Virendra Sharma , did not stand
Earley and Woodley
Conservative
Yuan Yang
Labour
Won new seat
Easington
Labour
Grahame Morris
Labour
Seat held
East Antrim
Democratic Unionist
Sammy Wilson
Democratic Unionist
Seat held
East Grinstead and Uckfield
Conservative
Mims Davies
Conservative
Seat held
East Ham
Labour
Stephen Timms
Labour
Seat held
East Hampshire
Conservative
Damian Hinds
Conservative
Seat held
East Kilbride and Strathaven
Scottish National [e]
Joani Reid
Labour
Previous incumbent, Dr. Lisa Cameron , did not stand
East Londonderry
Democratic Unionist
Gregory Campbell
Democratic Unionist
Seat held
East Renfrewshire
Scottish National
Blair McDougall
Labour
Defeated incumbent, Kirsten Oswald
East Surrey
Conservative
Claire Coutinho
Conservative
Seat held
East Thanet
Conservative
Polly Billington
Labour
Previous incumbent, Craig Mackinlay , did not stand
East Wiltshire
Conservative
Danny Kruger
Conservative
Seat held
East Worthing and Shoreham
Conservative
Tom Rutland
Labour
Previous incumbent, Tim Loughton , did not stand
Eastbourne
Conservative
Josh Babarinde
Liberal Democrats
Defeated incumbent, Caroline Ansell
Eastleigh
Conservative
Liz Jarvis
Liberal Democrats
Previous incumbent, Paul Holmes stood in Hamble Valley
Edinburgh East and Musselburgh
Scottish National
Chris Murray
Labour
Defeated incumbent, Tommy Sheppard
Edinburgh North and Leith
Scottish National
Tracy Gilbert
Labour
Defeated incumbent, Deidre Brock
Edinburgh South
Labour
Ian Murray
Labour
Seat held
Edinburgh South West
Scottish National
Scott Arthur
Labour
Defeated incumbent, Joanna Cherry
Edinburgh West
Liberal Democrats
Christine Jardine
Liberal Democrats
Seat held
Edmonton and Winchmore Hill
Labour
Kate Osamor
Labour
Seat held
Ellesmere Port and Bromborough
Labour
Justin Madders
Labour
Seat held
Eltham and Chislehurst
Conservative
Clive Efford
Labour
Seat held (notionally conservative seat)
Ely and East Cambridgeshire
Conservative
Charlotte Cane
Liberal Democrats
Defeated incumbent, Lucy Frazer
Enfield North
Labour
Feryal Clark
Labour
Seat held
Epping Forest
Conservative
Neil Hudson
Conservative
Previous incumbent, Eleanor Laing , did not stand
Epsom and Ewell
Conservative
Helen Maguire
Liberal Democrats
Previous incumbent, Chris Grayling , did not stand
Erewash
Conservative
Adam Thompson
Labour
Defeated incumbent, Maggie Throup
Erith and Thamesmead
Labour
Abena Oppong-Asare
Labour
Seat held
Esher and Walton
Conservative
Monica Harding
Liberal Democrats
Previous incumbent, Dominic Raab , did not stand
Exeter
Labour
Steve Race
Labour
Seat held
Exmouth and Exeter East
Conservative
David Reed
Conservative
Won new constituency
Falkirk
Scottish National
Euan Stainbank
Labour
Previous incumbent, John McNally , did not stand
Fareham and Waterlooville
Conservative
Suella Braverman
Conservative
Seat held
Farnham and Bordon
Conservative
Greg Stafford
Conservative
Seat held
Faversham and Mid Kent
Conservative
Helen Whately
Conservative
Seat held
Feltham and Heston
Labour
Seema Malhotra
Labour
Seat held
Fermanagh and South Tyrone
Sinn Féin
Pat Cullen
Sinn Féin
Previous incumbent, Michelle Gildernew , did not stand
Filton and Bradley Stoke
Conservative
Claire Hazelgrove
Labour
Defeated incumbent, Jack Lopresti
Finchley and Golders Green
Conservative
Sarah Sackman
Labour
Previous incumbent, Mike Freer , did not stand
Folkestone and Hythe
Conservative
Tony Vaughan
Labour
Defeated incumbent, Damian Collins
Forest of Dean
Conservative
Matt Bishop
Labour
Defeated incumbent, Mark Harper
Foyle
Social Democratic and Labour
Colum Eastwood
Social Democratic and Labour
Seat held
Frome and East Somerset
Conservative
Anna Sabine
Liberal Democrats
Won new seat - 2022 by-election had seen Lib Dems gain former Somerton and Frome seat.
Fylde
Conservative
Andrew Snowden
Conservative
Seat held
Gainsborough
Conservative
Edward Leigh
Conservative
Seat held
Gateshead Central and Whickham
Labour
Mark Ferguson
Labour
Previous incumbent, Ian Mearns , did not stand
Gedling
Conservative
Michael Payne
Labour
Defeated incumbent, Tom Randall
Gillingham and Rainham
Conservative
Naushabah Khan
Labour
Defeated incumbent, Rehman Chishti
Glasgow East
Scottish National
John Grady
Labour
Defeated incumbent, David Linden
Glasgow North
Scottish National
Martin Rhodes
Labour
Defeated incumbent, Alison Thewliss
Glasgow North East
Scottish National
Maureen Burke
Labour
Defeated incumbent, Anne McLaughlin
Glasgow South
Scottish National
Gordon McKee
Labour
Defeated incumbent, Stewart McDonald
Glasgow South West
Scottish National
Zubir Ahmed
Labour
Defeated incumbent, Chris Stephens
Glasgow West
Scottish National
Patricia Ferguson
Labour
Defeated incumbent, Carol Monaghan
Glastonbury and Somerton
Conservative
Sarah Dyke
Liberal Democrats
Held by-election gain (seat was formerly Somerton and Frome)
Glenrothes and Mid Fife
Scottish National
Richard Baker
Labour
Previous incumbent, Peter Grant , did not stand
Gloucester
Conservative
Alex McIntyre
Labour
Defeated incumbent, Richard Graham
Godalming and Ash
Conservative
Jeremy Hunt
Conservative
Seat held
Goole and Pocklington
Conservative
David Davis
Conservative
Seat held
Gordon and Buchan
Conservative
Harriet Cross
Conservative
Defeated incumbent, Richard Thomson
Gorton and Denton
Labour
Andrew Gwynne
Labour
Seat held
Gosport
Conservative
Caroline Dinenage
Conservative
Seat held
Gower
Labour
Tonia Antoniazzi
Labour
Seat held
Grantham and Bourne
Conservative
Gareth Davies
Conservative
Seat held
Gravesham
Conservative
Lauren Sullivan
Labour
Defeated incumbent, Adam Holloway
Great Grimsby and Cleethorpes
Conservative
Melanie Onn
Labour
Defeated incumbent, Lia Nici-Townend
Great Yarmouth
Conservative
Rupert Lowe
Reform UK
Previous incumbent, Brandon Lewis , did not stand
Greenwich and Woolwich
Labour
Matthew Pennycook
Labour
Seat held
Guildford
Conservative
Zöe Franklin
Liberal Democrats
Defeated incumbent, Angela Richardson
Hackney North and Stoke Newington
Labour
Diane Abbott
Labour
Seat held
Hackney South and Shoreditch
Labour
Meg Hillier
Labour
Seat held
Halesowen
Conservative
Alex Ballinger
Labour
Defeated incumbent James Morris
Halifax
Labour
Kate Dearden
Labour
Incumbent Holly Lynch stood down
Hamble Valley
Conservative
Paul Holmes
Conservative
Seat held
Hamilton and Clyde Valley
Scottish National
Imogen Walker
Labour
Won new seat
Hammersmith and Chiswick
Labour
Andy Slaughter
Labour
Seat held
Hampstead and Highgate
Labour
Tulip Siddiq
Labour
Seat held
Harborough, Oadby and Wigston
Conservative
Neil O'Brien
Conservative
Seat held
Harlow
Conservative
Chris Vince
Labour
Incumbent Robert Halfon stood down
Harpenden and Berkhamsted
Conservative
Victoria Collins
Liberal Democrats
Won new seat
Harrogate and Knaresborough
Conservative
Tom Gordon
Liberal Democrats
Defeated incumbent, Andrew Jones
Harrow East
Conservative
Bob Blackman
Conservative
Seat held
Harrow West
Labour
Gareth Thomas
Labour
Seat held
Hartlepool
Labour
Jonathan Brash
Labour
Defeated Conservative incumbent Jill Mortimer who was elected in 2021 by-election .
Harwich and North Essex
Conservative
Bernard Jenkin
Conservative
Seat held
Hastings and Rye
Conservative
Helena Dollimore
Labour
Defeated incumbent Sally-Ann Hart
Havant
Conservative
Alan Mak
Conservative
Seat held
Hayes and Harlington
Labour
John McDonnell
Labour
Seat held
Hazel Grove
Conservative
Lisa Smart
Liberal Democrats
Incumbent William Wragg stood down
Hemel Hempstead
Conservative
David Taylor
Labour
Incumbent Mike Penning stood down
Hendon
Conservative
David Pinto-Duschinsky
Labour
Incumbent Matthew Offord stood down
Henley and Thame
Conservative
Freddie van Mierlo
Liberal Democrats
Incumbent John Howell stood down
Hereford and South Herefordshire
Conservative
Jesse Norman
Conservative
Seat held
Herne Bay and Sandwich
Conservative
Roger Gale
Conservative
Seat held
Hertford and Stortford
Conservative
Josh Dean
Labour
Defeated incumbent, Julie Marson
Hertsmere
Conservative
Oliver Dowden
Conservative
Seat held
Hexham
Conservative
Joe Morris
Labour
Defeated incumbent, Guy Opperman
Heywood and Middleton North
Labour
Elsie Blundell
Labour
Incumbent Conservative MP Chris Clarkson stood down
High Peak
Conservative
Jon Pearce
Labour
Defeated incumbent, Robert Largan
Hinckley and Bosworth
Conservative
Luke Evans
Conservative
Seat held
Hitchin
Conservative
Alistair Strathern
Labour
Defeated incumbent, Bim Afolami ; Strathern won the 2023 Mid Bedfordshire by-election and part of that constituency was transferred to Hitchin.
Holborn and St Pancras
Labour
Keir Starmer
Labour
Seat held
Honiton and Sidmouth
Conservative
Richard Foord
Liberal Democrats
This new seat was nominally held by Simon Jupp, but Richard Foord won the 2022 Tiverton and Honiton by-election .
Hornchurch and Upminster
Conservative
Julia Lopez
Conservative
Seat held
Hornsey and Friern Barnet
Labour
Catherine West
Labour
Seat held
Horsham
Conservative
John Milne
Liberal Democrats
Defeated incumbent, Jeremy Quin
Houghton and Sunderland South
Labour
Bridget Phillipson
Labour
Seat held
Hove and Portslade
Labour
Peter Kyle
Labour
Seat held
Huddersfield
Labour
Harpreet Uppal
Labour
Incumbent Barry Sheerman stood down
Huntingdon
Conservative
Ben Obese-Jecty
Conservative
Incumbent Jonathan Djanogly stood down
Hyndburn
Conservative
Sarah Smith
Labour
Defeated incumbent Sara Britcliffe
Ilford North
Labour
Wes Streeting
Labour
Seat held
Ilford South
Labour
Jas Athwal
Labour
Incumbent Sam Tarry stood down
Inverclyde and Renfrewshire West
Scottish National
Martin McCluskey
Labour
Defeated incumbent Ronnie Cowan
Inverness, Skye and West Ross-shire
Scottish National
Angus MacDonald
Liberal Democrats
Defeated incumbent Drew Hendry
Ipswich
Conservative
Jack Abbott
Labour
Defeated incumbent Tom Hunt
Isle of Wight East
Conservative
Joe Robertson
Conservative
New seat won
Isle of Wight West
Conservative
Richard Quigley
Labour
Defeated incumbent Bob Seely
Islington North
Labour
Jeremy Corbyn
Independent
Seat held
Islington South and Finsbury
Labour
Emily Thornberry
Labour
Seat held
Jarrow and Gateshead East
Labour
Kate Osborne
Labour
Seat held
Keighley and Ilkley
Conservative
Robbie Moore
Conservative
Seat held
Kenilworth and Southam
Conservative
Jeremy Wright
Conservative
Seat held
Kensington and Bayswater
Labour
Joe Powell
Labour
Defeated incumbent, Felicity Buchan
Kettering
Conservative
Rosie Wrighting
Labour
Defeated incumbent, Philip Hollobone
Kilmarnock and Loudoun
Scottish National
Lillian Jones
Labour
Defeated incumbent, Alan Brown
Kingston and Surbiton
Liberal Democrats
Ed Davey
Liberal Democrats
Seat held
Kingston upon Hull East
Labour
Karl Turner
Labour
Seat held
Kingston upon Hull North and Cottingham
Labour
Diana Johnson
Labour
Seat held
Kingston upon Hull West and Haltemprice
Conservative
Emma Hardy
Labour
Seat held (notional gain)
Kingswinford and South Staffordshire
Conservative
Mike Wood
Conservative
Seat held
Knowsley
Labour
Anneliese Midgley
Labour
Previous incumbent, George Howarth , did not stand
Lagan Valley
Democratic Unionist
Sorcha Eastwood
Alliance
Previous incumbent, Jeffrey Donaldson , did not stand
Lancaster and Wyre
Conservative
Cat Smith
Labour
New seat won
Leeds Central and Headingley
Labour
Alex Sobel
Labour
Seat held
Leeds East
Labour
Richard Burgon
Labour
Seat held
Leeds North East
Labour
Fabian Hamilton
Labour
Seat held
Leeds North West
Conservative
Katie White
Labour
Previous incumbent, Stuart Andrew , stood in Daventry
Leeds South
Labour
Hilary Benn
Labour
Seat held
Leeds South West and Morley
Conservative
Mark Sewards
Labour
Defeated incumbent, Andrea Jenkyns
Leeds West and Pudsey
Labour
Rachel Reeves
Labour
Seat held
Leicester East
Labour [f]
Shivani Raja
Conservative
Defeated incumbent, Claudia Webbe
Leicester South
Labour
Shockat Adam
Independent
Defeated incumbent, Jonathan Ashworth
Leicester West
Labour
Liz Kendall
Labour
Seat held
Leigh and Atherton
Conservative
Jo Platt
Labour
Previous incumbent, James Grundy , did not stand
Lewes
Conservative
James MacCleary
Liberal Democrats
Defeated incumbent, Maria Caulfield
Lewisham East
Labour
Janet Daby
Labour
Seat held
Lewisham North
Labour
Vicky Foxcroft
Labour
Seat held
Lewisham West and East Dulwich
Labour
Ellie Reeves
Labour
Seat held
Leyton and Wanstead
Labour
Calvin Bailey
Labour
Previous incumbent, John Cryer , did not stand
Lichfield
Conservative
Dave Robertson
Labour
Defeated incumbent, Michael Fabricant
Lincoln
Conservative
Hamish Falconer
Labour
Defeated incumbent, Karl McCartney
Liverpool Garston
Labour
Maria Eagle
Labour
Seat held
Liverpool Riverside
Labour
Kim Johnson
Labour
Seat held
Liverpool Walton
Labour
Dan Carden
Labour
Seat held
Liverpool Wavertree
Labour
Paula Barker
Labour
Seat held
Liverpool West Derby
Labour
Ian Byrne
Labour
Seat held
Livingston
Scottish National
Gregor Poynton
Labour
Defeated incumbent, Hannah Bardell
Llanelli
Labour
Nia Griffith
Labour
Seat held
Lothian East
Scottish National
Douglas Alexander
Labour
Previous incumbent, Kenny MacAskill , stood in Alloa and Grangemouth
Loughborough
Conservative
Jeevun Sandher
Labour
Defeated incumbent, Jane Hunt
Louth and Horncastle
Conservative
Victoria Atkins
Conservative
Seat held
Lowestoft
Conservative
Jessica Asato
Labour
Defeated incumbent, Peter Aldous
Luton North
Labour
Sarah Owen
Labour
Seat held
Luton South and South Bedfordshire
Labour
Rachel Hopkins
Labour
Seat held
Macclesfield
Conservative
Tim Roca
Labour
Defeated incumbent, David Rutley
Maidenhead
Conservative
Joshua Reynolds
Liberal Democrats
Previous incumbent, Theresa May , did not stand
Maidstone and Malling
Conservative
Helen Grant
Conservative
Seat held
Makerfield
Labour
Josh Simons
Labour
Previous incumbent, Yvonne Fovargue , did not stand
Maldon
Conservative
John Whittingdale
Conservative
Seat held
Manchester Central
Labour
Lucy Powell
Labour
Seat held
Manchester Rusholme
Labour
Afzal Khan
Labour
Seat held
Manchester Withington
Labour
Jeff Smith
Labour
Seat held
Mansfield
Conservative
Steve Yemm
Labour
Defeated incumbent, Ben Bradley
Melksham and Devizes
Conservative
Brian Mathew
Liberal Democrats
New seat won
Melton and Syston
Conservative
Edward Argar
Conservative
New seat won
Meriden and Solihull East
Conservative
Saqib Bhatti
Conservative
Seat held
Merthyr Tydfil and Aberdare
Labour
Gerald Jones
Labour
Seat held
Mid and South Pembrokeshire
Conservative
Henry Tufnell
Labour
Defeated incumbent, Stephen Crabb
Mid Bedfordshire
Conservative
Blake Stephenson
Conservative
Won by Alistair Strathern for Labour in 2023 by-election . Strathern stood in Hitchin in 2024.
Mid Buckinghamshire
Conservative
Greg Smith
Conservative
Seat held
Mid Cheshire
Conservative
Andrew Cooper
Labour
New seat won
Mid Derbyshire
Conservative
Jonathan Davies
Labour
Previous incumbent, Pauline Latham , did not stand
Mid Dorset and North Poole
Conservative
Vikki Slade
Liberal Democrats
Defeated incumbent, Michael Tomlinson
Mid Dunbartonshire
Scottish National
Susan Murray
Liberal Democrats
Defeated incumbent, Amy Callaghan
Mid Leicestershire
Conservative
Peter Bedford
Conservative
Previous incumbent, Edward Argar , stood in Melton and Syston
Mid Norfolk
Conservative
George Freeman
Conservative
Seat held
Mid Sussex
Conservative
Alison Bennett
Liberal Democrats
Previous incumbent, Mims Davies , stood in East Grinstead and Uckfield
Mid Ulster
Sinn Féin
Cathal Mallaghan
Sinn Féin
Previous incumbent, Francie Molloy , did not stand
Middlesbrough and Thornaby East
Labour
Andy McDonald
Labour
Seat held
Middlesbrough South and East Cleveland
Conservative
Luke Myer
Labour
Defeated incumbent, Simon Clarke
Midlothian
Scottish National
Kirsty McNeill
Labour
Defeated incumbent, Owen Thompson
Milton Keynes Central
Conservative
Emily Darlington
Labour
Won new seat
Milton Keynes North
Conservative
Chris Curtis
Labour
Defeated incumbent, Ben Everitt
Mitcham and Morden
Labour
Siobhain McDonagh
Labour
Seat held
Monmouthshire
Conservative
Catherine Fookes
Labour
Defeated incumbent, David TC Davies
Montgomeryshire and Glyndŵr
Conservative
Steve Witherden
Labour
Defeated incumbent, Craig Williams
Moray West, Nairn and Strathspey
Scottish National
Graham Leadbitter
Scottish National
Won new seat
Morecambe and Lunesdale
Conservative
Lizzi Collinge
Labour
Defeated incumbent, David Morris
Motherwell, Wishaw and Carluke
Scottish National
Pamela Nash
Labour
Defeated incumbent, Marion Fellows
Na h-Eileanan an Iar
Scottish National
Torcuil Crichton
Labour
Defeated incumbent, Angus MacNeil
Neath and Swansea East
Labour
Carolyn Harris
Labour
Previous incumbent, Christina Rees , did not stand
New Forest East
Conservative
Julian Lewis
Conservative
Seat held
New Forest West
Conservative
Desmond Swayne
Conservative
Seat held
Newark
Conservative
Robert Jenrick
Conservative
Seat held
Newbury
Conservative
Lee Dillon
Liberal Democrats
Defeated incumbent, Laura Farris
Newcastle upon Tyne Central and West
Labour
Chi Onwurah
Labour
Seat held
Newcastle upon Tyne East and Wallsend
Labour
Mary Glindon
Labour
Seat held
Newcastle upon Tyne North
Labour
Catherine McKinnell
Labour
Seat held
Newcastle-under-Lyme
Conservative
Adam Jogee
Labour
Previous incumbent, Aaron Bell , did not stand
Newport East
Labour
Jessica Morden
Labour
Seat held
Newport West and Islwyn
Labour
Ruth Jones
Labour
Seat held
Newry and Armagh
Sinn Féin
Dáire Hughes
Sinn Féin
Previous incumbent, Mickey Brady , did not stand
Newton Abbot
Conservative
Martin Wrigley
Liberal Democrats
Defeated incumbent, Anne Marie Morris
Newton Aycliffe and Spennymoor
Conservative
Alan Strickland
Labour
Defeated incumbent, Paul Howell
Normanton and Hemsworth
Labour
Jon Trickett
Labour
Seat held
North Antrim
Democratic Unionist
Jim Allister
Traditional Unionist Voice
Defeated incumbent, Ian Paisley Jr
North Ayrshire and Arran
Scottish National
Irene Campbell
Labour
Defeated incumbent, Patricia Gibson
North Bedfordshire
Conservative
Richard Fuller
Conservative
Seat held
North Cornwall
Conservative
Ben Maguire
Liberal Democrats
Defeated incumbent, Scott Mann
North Cotswolds
Conservative
Geoffrey Clifton-Brown
Conservative
Seat held
North Devon
Conservative
Ian Roome
Liberal Democrats
Defeated incumbent, Selaine Saxby
North Dorset
Conservative
Simon Hoare
Conservative
Seat held
North Down
Alliance
Alex Easton
Independent
Defeated incumbent, Stephen Farry
North Durham
Labour
Luke Akehurst
Labour
Previous incumbent, Kevan Jones , did not stand
North East Cambridgeshire
Conservative
Steve Barclay
Conservative
Seat held
North East Derbyshire
Conservative
Louise Jones
Labour
Defeated incumbent, Lee Rowley
North East Fife
Scottish National
Wendy Chamberlain
Liberal Democrats
Seat held (boundary change nominal gain)
North East Hampshire
Conservative
Alex Brewer
Liberal Democrats
Defeated incumbent, Ranil Jayawardena
North East Hertfordshire
Conservative
Chris Hinchliff
Labour
Previous incumbent, Oliver Heald , did not stand
North East Somerset and Hanham
Conservative
Dan Norris
Labour
Defeated incumbent, Jacob Rees-Mogg
North Herefordshire
Conservative
Ellie Chowns
Green
Defeated incumbent, Bill Wiggin
North Norfolk
Conservative
Steffan Aquarone
Liberal Democrats
Defeated incumbent, Duncan Baker
North Northumberland
Conservative
David Smith
Labour
Defeated incumbent, Anne-Marie Trevelyan
North Shropshire
Conservative
Helen Morgan
Liberal Democrats
Seat held (following 2022 by-election gain)
North Somerset
Conservative
Sadik Al-Hassan
Labour
Defeated incumbent, Liam Fox
North Warwickshire and Bedworth
Conservative
Rachel Taylor
Labour
Defeated incumbent, Craig Tracey
North West Cambridgeshire
Conservative
Sam Carling
Labour
Defeated incumbent, Shailesh Vara
North West Essex
Conservative
Kemi Badenoch
Conservative
Seat held
North West Hampshire
Conservative
Kit Malthouse
Conservative
Seat held
North West Leicestershire
Conservative
Amanda Hack
Labour
Defeated incumbent, Andrew Bridgen
North West Norfolk
Conservative
James Wild
Conservative
Seat held
Northampton North
Conservative
Lucy Rigby
Labour
Previous incumbent, Michael Ellis , did not stand
Northampton South
Conservative
Mike Reader
Labour
Defeated incumbent, Andrew Lewer
Norwich North
Conservative
Alice Macdonald
Labour
Previous incumbent, Chloe Smith , did not stand
Norwich South
Labour
Clive Lewis
Labour
Seat held
Nottingham East
Labour
Nadia Whittome
Labour
Seat held
Nottingham North and Kimberley
Labour
Alex Norris
Labour
Seat held
Nottingham South
Labour
Lilian Greenwood
Labour
Seat held
Nuneaton
Conservative
Jodie Gosling
Labour
Defeated incumbent, Marcus Jones
Old Bexley and Sidcup
Conservative
Louie French
Conservative
Seat held
Oldham East and Saddleworth
Labour
Debbie Abrahams
Labour
Seat held
Oldham West, Chadderton and Royton
Labour
Jim McMahon
Labour
Seat held
Orkney and Shetland
Liberal Democrats
Alistair Carmichael
Liberal Democrats
Seat held
Orpington
Conservative
Gareth Bacon
Conservative
Seat held
Ossett and Denby Dale
Conservative
Jade Botterill
Labour
New seat won
Oxford East
Labour
Anneliese Dodds
Labour
Seat held
Oxford West and Abingdon
Liberal Democrats
Layla Moran
Liberal Democrats
Seat held
Paisley and Renfrewshire North
Scottish National
Alison Taylor
Labour
Defeated incumbent, Gavin Newlands
Paisley and Renfrewshire South
Scottish National
Johanna Baxter
Labour
Previous incumbent, Mhairi Black , did not stand
Peckham
Labour
Miatta Fahnbulleh
Labour
Previous incumbent, Harriet Harman , did not stand
Pendle and Clitheroe
Conservative
Jonathan Hinder
Labour
Defeated incumbent, Andrew Stephenson
Penistone and Stocksbridge
Conservative
Marie Tidball
Labour
Defeated incumbent, Miriam Cates
Penrith and Solway
Conservative
Markus Campbell-Savours
Labour
Defeated incumbent, Mark Jenkinson
Perth and Kinross-shire
Scottish National
Pete Wishart
Scottish National
Seat held
Peterborough
Conservative
Andrew Pakes
Labour
Defeated incumbent, Paul Bristow
Plymouth Moor View
Conservative
Fred Thomas
Labour
Defeated incumbent, Johnny Mercer
Plymouth Sutton and Devonport
Labour
Luke Pollard
Labour
Seat held
Pontefract, Castleford and Knottingley
Labour
Yvette Cooper
Labour
Seat held
Pontypridd
Labour
Alex Davies-Jones
Labour
Seat held
Poole
Conservative
Neil Duncan-Jordan
Labour
Defeated incumbent, Robert Syms
Poplar and Limehouse
Labour
Apsana Begum
Labour
Seat held
Portsmouth North
Conservative
Amanda Martin
Labour
Defeated incumbent, Penny Mordaunt
Portsmouth South
Labour
Stephen Morgan
Labour
Seat held
Preston
Labour
Mark Hendrick
Labour
Seat held
Putney
Labour
Fleur Anderson
Labour
Seat held
Queen's Park and Maida Vale
Labour
Georgia Gould
Labour
Previous incumbent, Karen Buck , did not stand
Rawmarsh and Conisbrough
Labour
John Healey
Labour
Seat held
Rayleigh and Wickford
Conservative
Mark Francois
Conservative
Seat held
Reading Central
Labour
Matt Rodda
Labour
Seat held
Reading West and Mid Berkshire
Conservative
Olivia Bailey
Labour
Previous incumbent, Alok Sharma , did not stand
Redcar
Conservative
Anna Turley
Labour
Defeated incumbent, Jacob Young
Redditch
Conservative
Chris Bloore
Labour
Defeated incumbent, Rachel Maclean
Reigate
Conservative
Rebecca Paul
Conservative
Previous incumbent, Crispin Blunt , did not stand
Rhondda and Ogmore
Labour
Chris Bryant
Labour
Seat held
Ribble Valley
Conservative
Maya Ellis
Labour
Defeated incumbent, Nigel Evans
Richmond and Northallerton
Conservative
Rishi Sunak
Conservative
Seat held
Richmond Park
Liberal Democrats
Sarah Olney
Liberal Democrats
Seat held
Rochdale
Labour
Paul Waugh
Labour
Defeated incumbent, George Galloway , who had been elected in 2024 by-election for the Workers Party .
Rochester and Strood
Conservative
Lauren Edwards
Labour
Defeated incumbent, Kelly Tolhurst
Romford
Conservative
Andrew Rosindell
Conservative
Seat held
Romsey and Southampton North
Conservative
Caroline Nokes
Conservative
Seat held
Rossendale and Darwen
Conservative
Andy MacNae
Labour
Defeated incumbent, Jake Berry
Rother Valley
Conservative
Jake Richards
Labour
Defeated incumbent, Alexander Stafford
Rotherham
Labour
Sarah Champion
Labour
Seat held
Rugby
Conservative
John Slinger
Labour
Previous incumbent, Mark Pawsey , did not stand
Ruislip, Northwood and Pinner
Conservative
David Simmonds
Conservative
Seat held
Runcorn and Helsby
Labour
Mike Amesbury
Labour
Seat held
Runnymede and Weybridge
Conservative
Ben Spencer
Conservative
Seat held
Rushcliffe
Conservative
James Naish
Labour
Defeated incumbent, Ruth Edwards
Rutherglen
Scottish National
Michael Shanks
Labour
Seat held
Rutland and Stamford
Conservative
Alicia Kearns
Conservative
Seat held
Salford
Labour
Rebecca Long-Bailey
Labour
Seat held
Salisbury
Conservative
John Glen
Conservative
Seat held
Scarborough and Whitby
Conservative
Alison Hume
Labour
Previous incumbent, Robert Goodwill , did not stand
Scunthorpe
Conservative
Nic Dakin
Labour
Defeated incumbent, Holly Mumby-Croft
Sefton Central
Labour
Bill Esterson
Labour
Seat held
Selby
Conservative
Keir Mather
Labour
Seat held
Sevenoaks
Conservative
Laura Trott
Conservative
Seat held
Sheffield Brightside and Hillsborough
Labour
Gill Furniss
Labour
Seat held
Sheffield Central
Labour
Abtisam Mohamed
Labour
Previous incumbent, Paul Blomfield , did not stand
Sheffield Hallam
Labour
Olivia Blake
Labour
Seat held
Sheffield Heeley
Labour
Louise Haigh
Labour
Seat held
Sheffield South East
Labour
Clive Betts
Labour
Seat held
Sherwood Forest
Conservative
Michelle Welsh
Labour
Defeated incumbent, Mark Spencer
Shipley
Conservative
Anna Dixon
Labour
Defeated incumbent, Philip Davies
Shrewsbury
Conservative
Julia Buckley
Labour
Defeated incumbent, Daniel Kawczynski
Sittingbourne and Sheppey
Conservative
Kevin McKenna
Labour
Previous incumbent, Gordon Henderson , did not stand
Skipton and Ripon
Conservative
Julian Smith
Conservative
Seat held
Sleaford and North Hykeham
Conservative
Caroline Johnson
Conservative
Seat held
Slough
Labour
Tan Dhesi
Labour
Seat held
Smethwick
Labour
Gurinder Josan
Labour
Previous incumbent, John Spellar , did not stand
Solihull West and Shirley
Conservative
Neil Shastri-Hurst
Conservative
Defeated incumbent, Julian Knight
South Antrim
Democratic Unionist
Robin Swann
Ulster Unionist
Defeated incumbent, Paul Girvan
South Basildon and East Thurrock
Conservative
James McMurdock
Reform UK
Defeated incumbent, Stephen Metcalfe
South Cambridgeshire
Conservative
Pippa Heylings
Liberal Democrats
Previous incumbent, Anthony Browne , did not stand
South Cotswolds
Conservative
Roz Savage
Liberal Democrats
Defeated incumbent, James Gray
South Derbyshire
Conservative
Samantha Niblett
Labour
Defeated incumbent, Heather Wheeler
South Devon
Conservative
Caroline Voaden
Liberal Democrats
Defeated incumbent, Anthony Mangnall
South Dorset
Conservative
Lloyd Hatton
Labour
Defeated incumbent, Richard Drax
South Down
Sinn Féin
Chris Hazzard
Sinn Féin
Seat held
South East Cornwall
Conservative
Anna Gelderd
Labour
Defeated incumbent, Sheryll Murray
South Holland and the Deepings
Conservative
John Hayes
Conservative
Seat held
South Leicestershire
Conservative
Alberto Costa
Conservative
Seat held
South Norfolk
Conservative
Ben Goldsborough
Labour
Previous incumbent, Richard Bacon , did not stand
South Northamptonshire
Conservative
Sarah Bool
Conservative
Previous incumbent, Andrea Leadsom , did not stand
South Ribble
Conservative
Paul Foster
Labour
Defeated incumbent, Katherine Fletcher
South Shields
Labour
Emma Lewell-Buck
Labour
Seat held
South Shropshire
Conservative
Stuart Anderson
Conservative
Previous incumbent, Philip Dunne , did not stand
South Suffolk
Conservative
James Cartlidge
Conservative
Seat held
South West Devon
Conservative
Rebecca Smith
Conservative
Previous incumbent, Gary Streeter , did not stand
South West Hertfordshire
Conservative
Gagan Mohindra
Conservative
Seat held
South West Norfolk
Conservative
Terry Jermy
Labour
Defeated incumbent, Liz Truss
South West Wiltshire
Conservative
Andrew Murrison
Conservative
Seat held
Southampton Itchen
Conservative
Darren Paffey
Labour
Previous incumbent, Royston Smith , did not stand
Southampton Test
Labour
Satvir Kaur
Labour
Previous incumbent, Alan Whitehead , did not stand
Southend East and Rochford
Conservative
Bayo Alaba
Labour
Previous incumbent, James Duddridge , did not stand
Southend West and Leigh
Conservative
David Burton-Sampson
Labour
Defeated incumbent, Anna Firth
Southgate and Wood Green
Labour
Bambos Charalambous
Labour
Seat held
Southport
Conservative
Patrick Hurley
Labour
Defeated incumbent, Damien Moore
Spelthorne
Conservative
Lincoln Jopp
Conservative
Previous incumbent, Kwasi Kwarteng , did not stand
Spen Valley
Conservative
Kim Leadbeater
Labour
Seat held
St Albans
Liberal Democrats
Daisy Cooper
Liberal Democrats
Seat held
St Austell and Newquay
Conservative
Noah Law
Labour
Defeated incumbent, Steve Double
St Helens North
Labour
David Baines
Labour
Previous incumbent, Conor McGinn , did not stand
St Helens South and Whiston
Labour
Marie Rimmer
Labour
Seat held
St Ives
Conservative
Andrew George
Liberal Democrats
Defeated incumbent, Derek Thomas
St Neots and Mid Cambridgeshire
Conservative
Ian Sollom
Liberal Democrats
New seat won
Stafford
Conservative
Leigh Ingham
Labour
Defeated incumbent, Theo Clarke
Staffordshire Moorlands
Conservative
Karen Bradley
Conservative
Seat held
Stalybridge and Hyde
Labour
Jonathan Reynolds
Labour
Seat held
Stevenage
Conservative
Kevin Bonavia
Labour
Previous incumbent, Stephen McPartland , did not stand
Stirling and Strathallan
Scottish National
Chris Kane
Labour
Defeated incumbent, Alyn Smith
Stockport
Labour
Navendu Mishra
Labour
Seat held
Stockton North
Labour
Chris McDonald
Labour
Previous incumbent, Alex Cunningham , did not stand
Stockton West
Conservative
Matt Vickers
Conservative
Seat held
Stoke-on-Trent Central
Conservative
Gareth Snell
Labour
Previous incumbent, Jo Gideon , did not stand
Stoke-on-Trent North
Conservative
David Williams
Labour
Defeated incumbent, Jonathan Gullis
Stoke-on-Trent South
Conservative
Allison Gardner
Labour
Defeated incumbent, Jack Brereton
Stone, Great Wyrley and Penkridge
Conservative
Gavin Williamson
Conservative
Seat held
Stourbridge
Conservative
Cat Eccles
Labour
Defeated incumbent, Suzanne Webb
Strangford
Democratic Unionist
Jim Shannon
Democratic Unionist
Seat held
Stratford and Bow
Labour
Uma Kumaran
Labour
New seat won
Stratford-on-Avon
Conservative
Manuela Perteghella
Liberal Democrats
Previous incumbent, Nadhim Zahawi , did not stand
Streatham and Croydon North
Labour
Steve Reed
Labour
Seat held
Stretford and Urmston
Labour
Andrew Western
Labour
Seat held
Stroud
Conservative
Simon Opher
Labour
Defeated incumbent, Siobhan Baillie
Suffolk Coastal
Conservative
Jenny Riddell-Carpenter
Labour
Defeated incumbent, Thérèse Coffey
Sunderland Central
Labour
Lewis Atkinson
Labour
Previous incumbent, Julie Elliott , did not stand
Surrey Heath
Conservative
Al Pinkerton
Liberal Democrats
Previous incumbent, Michael Gove , did not stand
Sussex Weald
Conservative
Nus Ghani
Conservative
Seat held
Sutton and Cheam
Conservative
Luke Taylor
Liberal Democrats
Previous incumbent, Paul Scully , did not stand
Sutton Coldfield
Conservative
Andrew Mitchell
Conservative
Seat held
Swansea West
Labour
Torsten Bell
Labour
Previous incumbent, Geraint Davies , did not stand
Swindon North
Conservative
Will Stone
Labour
Defeated incumbent, Justin Tomlinson
Swindon South
Conservative
Heidi Alexander
Labour
Defeated incumbent, Robert Buckland
Tamworth
Conservative
Sarah Edwards
Labour
Won by Labour at 2023 by-election
Tatton
Conservative
Esther McVey
Conservative
Seat held
Taunton and Wellington
Conservative
Gideon Amos
Liberal Democrats
Defeated incumbent, Rebecca Pow
Telford
Conservative
Shaun Davies
Labour
Previous incumbent, Lucy Allan , did not stand
Tewkesbury
Conservative
Cameron Thomas
Liberal Democrats
Defeated incumbent, Laurence Robertson
The Wrekin
Conservative
Mark Pritchard
Conservative
Seat held
Thirsk and Malton
Conservative
Kevin Hollinrake
Conservative
Seat held
Thornbury and Yate
Conservative
Claire Young
Liberal Democrats
Defeated incumbent, Luke Hall
Thurrock
Conservative
Jen Craft
Labour
Defeated incumbent, Jackie Doyle-Price
Tipton and Wednesbury
Conservative
Antonia Bance
Labour
Defeated incumbent, Shaun Bailey
Tiverton and Minehead
Conservative
Rachel Gilmour
Liberal Democrats
New seat won - previous seat with Tiverton had been won in 2022 by-election (winnning MP went to Honiton seat)
Tonbridge
Conservative
Tom Tugendhat
Conservative
Seat held
Tooting
Labour
Rosena Allin-Khan
Labour
Seat held
Torbay
Conservative
Steve Darling
Liberal Democrats
Defeated incumbent, Kevin Foster
Torfaen
Labour
Nick Thomas-Symonds
Labour
Seat held
Torridge and Tavistock
Conservative
Geoffrey Cox
Conservative
Seat held
Tottenham
Labour
David Lammy
Labour
Seat held
Truro and Falmouth
Conservative
Jayne Kirkham
Labour
Defeated incumbent, Cherilyn Mackrory
Tunbridge Wells
Conservative
Mike Martin
Liberal Democrats
Previous incumbent, Greg Clark , did not stand
Twickenham
Liberal Democrats
Munira Wilson
Liberal Democrats
Seat held
Tynemouth
Labour
Alan Campbell
Labour
Seat held
Upper Bann
Democratic Unionist
Carla Lockhart
Democratic Unionist
Seat held
Uxbridge and South Ruislip
Conservative
Danny Beales
Labour
Defeated incumbent, Steve Tuckwell
Vale of Glamorgan
Conservative
Kanishka Narayan
Labour
Defeated incumbent, Alun Cairns
Vauxhall and Camberwell Green
Labour
Florence Eshalomi
Labour
Seat held
Wakefield and Rothwell
Conservative
Simon Lightwood
Labour
Seat held
Wallasey
Labour
Angela Eagle
Labour
Seat held
Walsall and Bloxwich
Conservative
Valerie Vaz
Labour
Seat held
Walthamstow
Labour
Stella Creasy
Labour
Seat held
Warrington North
Labour
Charlotte Nichols
Labour
Seat held
Warrington South
Labour
Sarah Hall
Labour
Defeated incumbent, Andy Carter
Warwick and Leamington
Labour
Matt Western
Labour
Seat held
Washington and Gateshead South
Labour
Sharon Hodgson
Labour
Seat held
Watford
Conservative
Matt Turmaine
Labour
Defeated incumbent, Dean Russell
Waveney Valley
Conservative
Adrian Ramsay
Green
New seat won
Weald of Kent
Conservative
Katie Lam
Conservative
New seat won
Wellingborough and Rushden
Conservative
Gen Kitchen
Labour
Won by Labour at 2024 by-election
Wells and Mendip Hills
Conservative
Tessa Munt
Liberal Democrats
Previous incumbent, James Heappey , did not stand
Welwyn Hatfield
Conservative
Andrew Lewin
Labour
Defeated incumbent, Grant Shapps
West Aberdeenshire and Kincardine
Conservative
Andrew Bowie
Conservative
Seat held
West Bromwich
Conservative
Sarah Coombes
Labour
Previous incumbent, Nicola Richards , did not stand
West Dorset
Conservative
Edward Morello
Liberal Democrats
Defeated incumbent, Chris Loder
West Dunbartonshire
Scottish National
Douglas McAllister
Labour
Defeated incumbent, Martin Docherty-Hughes
West Ham and Beckton
Labour
James Asser
Labour
Previous incumbent, Lyn Brown , did not stand
West Lancashire
Labour
Ashley Dalton
Labour
Seat held
West Suffolk
Conservative
Nick Timothy
Conservative
Previous incumbent, Matt Hancock , did not stand
West Tyrone
Sinn Féin
Órfhlaith Begley
Sinn Féin
Seat held
West Worcestershire
Conservative
Harriett Baldwin
Conservative
Seat held
Westmorland and Lonsdale
Conservative
Tim Farron
Liberal Democrats
Seat held
Weston-super-Mare
Conservative
Daniel Aldridge
Labour
Defeated incumbent, John Penrose
Wetherby and Easingwold
Conservative
Alec Shelbrooke
Conservative
Seat held
Whitehaven and Workington
Conservative
Josh MacAlister
Labour
Previous incumbent, Trudy Harrison , did not stand
Widnes and Halewood
Labour
Derek Twigg
Labour
Seat held
Wigan
Labour
Lisa Nandy
Labour
Seat held
Wimbledon
Conservative
Paul Kohler
Liberal Democrats
Previous incumbent, Stephen Hammond , did not stand
Winchester
Conservative
Danny Chambers
Liberal Democrats
Previous incumbent, Steve Brine , did not stand
Windsor
Conservative
Jack Rankin
Conservative
Previous incumbent, Adam Afriyie , did not stand
Wirral West
Labour
Matthew Patrick
Labour
Previous incumbent, Margaret Greenwood , did not stand
Witham
Conservative
Priti Patel
Conservative
Seat held
Witney
Conservative
Charlie Maynard
Liberal Democrats
Defeated incumbent, Robert Courts
Woking
Conservative
Will Forster
Liberal Democrats
Defeated incumbent, Jonathan Lord
Wokingham
Conservative
Clive Jones
Liberal Democrats
Previous incumbent, John Redwood , did not stand
Wolverhampton North East
Conservative
Sureena Brackenridge
Labour
Defeated incumbent, Jane Stevenson
Wolverhampton South East
Labour
Pat McFadden
Labour
Seat held
Wolverhampton West
Conservative
Warinder Juss
Labour
Previous incumbent, Stuart Anderson , stood in Wolverhampton South West
Worcester
Conservative
Tom Collins
Labour
Previous incumbent, Robin Walker , did not stand
Worsley and Eccles
Labour
Michael Wheeler
Labour
Previous incumbent, Barbara Keeley , did not stand
Worthing West
Conservative
Beccy Cooper
Labour
Defeated incumbent, Peter Bottomley
Wrexham
Conservative
Andrew Ranger
Labour
Defeated incumbent, Sarah Atherton
Wycombe
Conservative
Emma Reynolds
Labour
Defeated incumbent, Steve Baker
Wyre Forest
Conservative
Mark Garnier
Conservative
Seat held
Wythenshawe and Sale East
Labour
Mike Kane
Labour
Seat held
Yeovil
Conservative
Adam Dance
Liberal Democrats
Defeated incumbent, Marcus Fysh
Ynys Môn
Conservative
Llinos Medi
Plaid Cymru
Defeated incumbent, Virginia Crosbie
York Central
Labour
Rachael Maskell
Labour
Seat held
York Outer
Conservative
Luke Charters
Labour
Defeated incumbent, Julian Sturdy