By Becky Morton
Political reporter
The Conservatives have suffered two heavy defeats, but have narrowly held on to former PM Boris Johnson’s old Uxbridge seat, after a night of three dramatic by-election results.
In Somerton and Frome the Lib Dems overturned a majority of more than 19,000, with a 29% swing.
And Labour made history, overturning a 20,137 majority to take the North Yorkshire seat of Selby and Ainsty.
But it was disappointed as the Tories clinched Uxbridge and South Ruislip.
Despite a 6.7% swing to Labour, the Tories managed to capitalise on local anger over the the planned expansion of the Ulez Ultra Low Emissions Zone to outer London under Labour mayor Sadiq Khan, winning the seat by just 495 votes.
It meant Rishi Sunak was spared the prospect of being the first prime minister for 55 years to lose three by-elections in one night.
However, it was still a bruising night for the Tories, who are trailing Labour in the national polls ahead of an expected general election next year.
In Selby and Ainsty, Labour managed to achieve a 23.7% swing and broke the record for the largest Conservative majority it had overturned at a by-election since 1945.
Keir Mather, 25, will become the youngest MP in the House of Commons, after he secured 16,456 votes compared to Conservative candidate Clare Holmes’s 12,295.
The safe Conservative seat, which is largely rural, had been held by the party since its creation in 2010.
Labour leader Sir Keir 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.”
Mr Mather said his party had “rewritten the rules on where Labour can win”.
He said voters were “extremely frustrated” at the way the area’s previous Tory MP had stood down but that the cost-of-living crisis was the top issue on the doorstep.
The resignation of Mr Johnson’s ally Nigel Adams came after he was not included in the former prime minister’s honours list – although he has not said this was why he quit.
In Somerton and Frome Lib Dem Sarah Dyke, a Somerset councillor with a farming background, secured a dramatic victory, winning 21,187 votes, while Conservative Faye Purbrick trailed in second with 10,179 votes.
In her victory speech Ms Dyke thanked “lifelong Conservative voters” who had voted Lib Dem for the first time, as well as Labour and Green supporters who had “lent” their votes.
She said the public had been “let down and taken for granted for far too long” by the Conservatives, with the government “too busy being a circus of chaos”.
The by-election was triggered by the resignation of former Tory MP David Warburton, following allegations of drug-taking and sexual misconduct.
Mr Warburton, who had held Somerton and Frome since 2015, resigned as an MP last month, admitting he had taken cocaine but denying the claims of sexual harassment.
Ms Dyke accused Mr Warburton, who was suspended from the Conservative parliamentary party last April, of being an “absent” MP and said people had been “left without a voice in Parliament for far too long”.
South-west England was a former stronghold for the Lib Dems until their near wipe-out in 2015 after they went into coalition with the Tories.
However, last year they overturned a majority of more than 24,000 in the Tiverton and Honiton by-election to win the Devon seat, and they also took control of Somerset Council from the Tories.
Lib Dem leader Sir Ed Davey said the “stunning victory shows the Liberal Democrats are firmly back in the West Country” and that the country are “fed up with Rishi Sunak’s out-of-touch Conservative government”.
It is the party’s fourth by-election gain since 2019, although this has not translated into major advances in national polls.
Deputy leader Daisy Cooper told the BBC there were around 15 seats with smaller majorities than Somerton and Frome in the West Country, which the Lib Dems would be targeting at the next general election.
Pressed on whether the Lib Dems could still persuade Labour supporters to lend their votes in a general election, Ms Cooper said: “It has been done in a general election [before] and we hope very much we can do at the next general election as well.”
Labour had hoped to deliver a triple by-election defeat for the Tories by taking the west London seat of Uxbridge and South Ruislip, which had a majority of 7,210.
But Conservative Steve Tuckwell edged ahead in a closely fought contest which saw Conservative and Labour votes recounted.
Mr Tuckwell, who opposed the Ulez expansion, made the issue central to his campaign, with activists saying it was raised frequently by voters on the the doorstep.
Labour’s Danny Beales, who came second with 13,470 votes compared to Mr Tuckwell’s 13,965, had sought to distance himself from the policy, arguing it was not the right time to expand the charge amid a cost-of-living crisis.
However, the Tories highlighted how the expansion of the daily charge for cars which fail to meet emissions standards to outer London was the policy of a Labour mayor.
In his victory speech, new MP Mr Tuckwell said Mr Khan’s “damaging and costly Ulez policy” lost Labour the seat.
Labour’s deputy leader Angela Rayner said the Uxbridge result was related to Ulez and showed that “when you don’t listen to voters you don’t win elections”.
“There is a concern that we have to make sure that whatever is implemented is not at the cost of working families,” she told BBC Breakfast.
Ms Rayner added that cities needed clean air but people who had to replace polluting vehicles also needed “proper compensation and support from the government”.
Asked whether she would be urging Mr Khan to drop the policy she said the party would be “getting round the table” and would continue to work with the London mayor “to get a decent scrappage scheme”.
The by-election in Uxbridge was triggered by Mr Johnson’s resignation, after the former prime minister claimed he was “forced out” by an inquiry which found he misled Parliament over lockdown parties at Downing Street.
Conservative Party chairman Greg Hands accused Labour leader Sir Keir of a “flip-flop approach to politics”, saying he initially backed the Ulez expansion before appearing to change his mind. Sir Keir refused to take a side on the issue in a BBC interview earlier this month.
Mr Hands told the BBC his party had “defied the odds” by holding on to Uxbridge but blamed Tory voters staying at home for losses in Selby and Somerton, vowing to retake the seats at the next general election.