The Labour party has won its biggest ever byelection victory by overturning a 20,000-vote Conservative majority in Selby and Ainsty, sending a 25-year-old to parliament.
But Keir Starmer’s party failed to win Uxbridge and South Ruislip, Boris Johnson’s old constituency. The Conservatives held on to the outer London seat with a majority of 495, the only bit of good news in an otherwise miserable night for Rishi Sunak.
The Liberal Democrats romped to victory in Somerton and Frome, in a contest triggered by the resignation of scandal-hit David Warburton. Sarah Dyke, the cabinet member for the environment on South Somerset district council, won with a majority of 11,008 over the Conservatives.
The Green party came a distant third in all three byelections.
Greg Hands, the Conservative chair, said the party was disappointed by the Selby result, arguing this was “driven largely by Conservative voters – previous Conservative voters – staying home”.
Hands told BBC Radio 4’s Today programme that the results did not necessarily spell doom for his party, given the long history of incumbent governments being punished in byelections, pointing to the narrow win in Uxbridge.
“We’re obviously going to listen to people, we’re going to look at some of the reasons why,” he said. “But equally by elections are not always a good predictor of general elections.”
However, the polling expert ProfSir John Curtice, speaking on the same programme, said Hands was being unrealistic, and that the results showed the Conservatives were “in as deep an electoral hole as polling suggests”.
Labour’s delight was tempered by its failure to take Uxbridge, with some in the party blaming the decision of the London mayor, Sadiq Khan, to extend the ultra-low emission zone (Ulez) anti-pollution scheme to outer areas of the city, including Uxbridge, the key Tory campaign in the area.
Labour’s deputy leader, Angela Rayner, hinted that the party thought Khan should rethink the policy. She told BBC Breakfast: “I think one of the things we have to reflect on today is not only the mood against the Tories, but also the decision in Uxbridge was related to Ulez.
“The Uxbridge result shows that when you don’t listen to the voters, you don’t win elections.”
Ed Davey, the Liberal Democrat leader, said the party’s win in Somerton and Frome showed it was “firmly back in the West Country”.
Selby’s new MP is 25-year-old Keir Mather, a former researcher for the shadow health secretary, Wes Streeting, who was named after the first leader of the Labour party, Keir Hardie. Mather won by 4,161 votes.
Mather will become the “baby of the house” as the youngest MP in the Commons. In his victory speech, he said that “thousands of votes were in Labour’s box for the first time” and declared: “In this campaign we have rewritten the rules on where Labour can win.”
Starmer said: “This is a historic result that shows that people are looking at Labour and seeing a changed party that is focused entirely on the priorities of working people with an ambitious, practical plan to deliver.
“Keir Mather will be a fantastic MP who will deliver the fresh start Selby and Ainsty deserves.”
Labour had been expected to comfortably win Uxbridge, where Johnson’s majority had dwindled to 7,210 in the 2019 general election – his first as prime minister.
There was sufficient disbelief in the Labour camp that they had not in fact won the byelection that party officials demanded a recount. The second round delivered the same result: a slim Conservative victory.
Former postman Steve Tuckwell, the local Conservative councillor who will take Johnson’s place in Westminster, had said the vote was a “referendum” on Ulez.
In his victory speech, Tuckwell referenced the mayor of London’s decision to expand the zone, where people have to pay a £12.50 daily fee to drive if their car does not meet emission standards. “Sadiq Khan has lost Labour this election,” said Tuckwell.
There was a 6.7-percentage point swing in the share of the vote from Conservative to Labour in Uxbridge and South Ruislip. Labour needed a 7.6-point swing to take the seat.
The byelection was triggered by Johnson’s shock resignation after the Commons privileges committee recommended a lengthy suspension from parliament for knowingly misleading parliament about lockdown parties in Downing Street.
In Selby, the Conservatives blamed the outgoing MP, Nigel Adams, for their defeat. People were “really disappointed” that Adams quit in a huff because he didn’t get a seat in the Lords, said Andrew Jones, the MP for Harrogate and Knaresborough, who has been overseeing much of the Tory campaigning in Selby. It was “the main talking point” on the doorstep, he claimed.
The Liberal Democrats have gained four seats from the Conservatives at byelections this parliament, after winning Chesham and Amersham and North Shropshire in 2021, and Tiverton and Honiton last year.
In her victory speech in Somerset, Dyke thanked lifelong Conservative voters for switching to the Lib Dems for the first time.
The Lib Dems won 21,187 votes with a 28-point swing, while the Tories achieved their worst result in the history of the seat with 10,179 votes and 26% of the vote. The Greens came third, with Reform UK fourth and Labour fifth.
Labour has gained two seats in byelections since the 2019 general election, after its 2022 win in Wakefield.
Labour’s win in Selby exceeds both the national 12-point swing the party needs for an overall majority at the next general election and the 16-point swing suggested by recent polls.
Gaining Selby sets a record for the size of majority overturned by Labour at a byelection, according to Dr Hannah Bunting and Prof Will Jennings, Sky election analysts. The highest majority the party has overturned at a byelection is 14,654 votes in Mid Staffordshire more than 30 years ago.
Of the three byelections, turnout was highest in Uxbridge and South Ruislip, with 46.11% of the electorate casting a ballot. It was 44.12% in Somerset and 44.77% in Selby.