The Labour party has won its biggest ever byelection victory by overturning a 20,000-vote Conservative majority in Selby and Ainsty, with the Liberal Democrats also unseating the Tories in the previously safe seat of Somerton and Frome.
But in the one glimmer of hope for the Conservatives, they held on to the Uxbridge and South Ruislip seat formerly held by Boris Johnson, fending off a predicted Labour win by just 495 votes.
While Rishi Sunak, on a Friday morning visit to Uxbridge, said the results showed a Labour victory in the general election was not “a done deal”, pollsters stressed that the overall swing away from the Conservatives was a clear message from voters.
Selby’s new MP is 25-year-old Keir Mather, a former researcher for the shadow health secretary, Wes Streeting, who won by 4,161 votes, a massive 23.7 percentage point swing from the Conservatives.
Nigel Adams, a Johnson ally who resigned as a Tory MP in June, formerly held the seat with a 20,000-plus majority.
Mather, 25, 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.”
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, 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 byelections 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”.
Joining the victorious Tory candidate, Steve Tuckwell, at a cafe in Uxbridge, Sunak said: “Westminster’s been acting like the next election is a done deal. The Labour party has been acting like it’s a done deal. The people of Uxbridge just told all of them that it’s not.”
Labour’s delight was notably 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”.
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 for knowingly misleading parliament about lockdown parties in Downing Street.
In Selby, the Conservatives blamed Adams for their defeat. People were “really disappointed” that Adams quit in a huff because he did not 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 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 had previously overturned at a byelection was 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 Somerton and 44.77% in Selby.