ARTICLE AD BOX
The Conservatives have suffered a heavy defeat in the Somerton and Frome by-election but narrowly held on to Boris Johnson's old Uxbridge seat.
The Lib Dems overturned a majority of more than 19,000, with a 29% swing to secure victory in the Somerset seat.
But the Tories managed to fend off a challenge from Labour in Uxbridge and South Ruislip, winning by 495 votes.
They still face a battle to hold Selby and Ainsty, with results due later.
In Somerton and Frome, Lib Dem Sarah Dyke, a Somerset councillor with a farming background, won 21,187 votes, while Conservative councillor Faye Purbrick trailed in second with 10,179 votes.
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.
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.
Meanwhile, Labour had hoped to take the west London seat of Uxbridge and South Ruislip, which had a majority of 7,210.
But Steve Tuckwell clinched victory in a closely fought contest which saw Conservative and Labour votes recounted.
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.
Mr Tuckwell, who opposed the 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 argued it was not the right time to expand the charge amid a cost-of-living crisis.
However, the Tories highlighted how the expansion was the policy of a Labour mayor.
Labour's failure to win Uxbridge meant Prime Minister Rishi Sunak was spared the prospect of being the first prime minister for 55 years to lose three by-elections in one night.
The by-election 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.
Labour will be hoping for a major victory in Selby and Ainsty in North Yorkshire.
The party faces a significant battle to win the seat, which has a majority of 20,137. Overturning this would be Labour's biggest ever by-election swing.