Rishi Sunak has been left scrabbling for crumbs of comfort after double by-election defeats pointed to a brutal pincer attack by Labour and the Liberal Democrats next year. 

The Tory leader took solace from his party narrowly holding on in Boris Johnson’s former west London seat thanks to a highly focused campaign on a local car-charging issue.

However tactical voting for Labour in Yorkshire and for the LibDems in Somerset saw previously rock solid Tory majorities of around 20,000 toppled with relative ease.

The results from the three contests suggest the Tories face a nightmare scenario in the coming general election as voters flock to whichever party is best placed to defeat them. 

Professor Sir John Curtice of Strathclyde University said the slump in support for the Conservatives in all three seats indicated they were “in deep electoral trouble”.

Labour’s win in Selby & Ainsty was the party’s biggest since the dog days of John Major’s administration in the 1990s, which was followed by a New Labour landslide for Tony Blair.

Candidate Keir Mather turned a Tory majority of 20,137 into a Labour one of 4,161 to become the youngest MP in the Commons at the age of just 25.

Sir Keir Starmer said voters had let out a “cry for change”, while LibDem leader Sir Ed Davey said it was “time to get these clowns out of No 10”.

Citing the successful defence of Uxbridge & South Ruislip, where the Tory majority fell from 7,210 to 495, the Prime Minister said the general election was “not a done deal”.

Visiting the seat’s Rumbling Tum Cafe, he said: “Byelections, mid-terms for an incumbent Government are always difficult. They rarely win them. The message I take away is that we’ve got to double down, stick to our plan and deliver for people. 

“That’s what I heard when I was out on the doorsteps and that’s what we’re going to do.

“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.”

But the seat’s new MP, Steve Tuckwell, who promoted himself as as a local candidate rather than a Tory and didn’t thank Mr Sunak in his victory speech, said his win was down to one issue: a £12.50 daily charge for polluting cars that starts next month.

Mr Tuckwell credited his success to London’s Labour mayor, Sadiq Khan, for expanding the Ultra Low Emission Zone (Ulez) charge to Uxbridge, infuriating voters there. 

“My campaign has been incredibly single-minded and it’s really been in complete opposition to Ulez from the outset,” Mr Tuckwelll said. “That’s not me saying that, it’s not me that called the referendum on Ulez. It is the people of Uxbridge and South Ruislip.”

Labour’s inability to win the seat, despite Mr Johnson quitting as its MP after a Commons inquiry found he lied to parliament over Covid rule-breaking in No10, unnerved party strategists who fear Sir Keir has yet to win over enough voters to take power.

Visiting Selby, the Labour leader said the 23.7% swing from Conservative to Labour in Selby, the second largest managed by Labour at a by-election since 1945, was “historic”.

But he also admitted there was “no doubt” that the Ulez charge was why the party failed to win in Uxbridge, and said the party and the mayor had to “reflect on that”.

He said: “Uxbridge was always going to be tough. We didn’t take Uxbridge in 1997 and we knew Ulez was going to be an issue. And of course we all need to reflect on that, including the mayor needs to reflect on that.”

Mr Khan defended the decision to expand the Ulez as “tough but the right one”.

He said around 4000 people across the capital died prematurely each year because of pollution, saying clean air was “a human right not a privilege”.

However he also said the policy would be monitored and the eligibility for scrappage payments could be widened.

In Somerton and Frome, Sarah Dyke turned a Tory majority of 19,213 into an 11,008-vote margin of victory for the LibDems on a mammoth 29% swing.

Visiting the West Country, which had been fertile territory for his party until its coalition deal with the Tories in 2010, Sir Ed Davey was the first LibDem leader since Paddy Ashdown in the 1990s to enjoy four byelection wins.

In a trademark stunt, he pretended to light a circus cannon spraying yellow confetti across dozens of supporters, declaring: “It’s time to end this shameful spectacle. It’s time for a general election to end this Conservative circus.”

Addressing an election rally in Frome town centre after the “spectacular” result, Sir Ed said: “I’ve spoken to a lot of people in this by-election and people across the country.

“People are angry, they are angry that while they work hard to make ends meet, angry while they are trying to get a GP appointment or a dentist for their child, the Conservatives are so out of touch they have not even noticed.

“They are fed up of these Conservative clowns with their political circus not helping people.

“That’s why thousands of lifelong Conservatives are switching to the Liberal Democrats and why thousands of life-long Labour voters lent us their support to beat the Conservatives.”

Prof Curtice said overall the by-elections had the Tories 21 percentage points behind Labour, similar to the national polling, akin to the period before Labour’s 1997 landslide.

He told BBC Radio 4 that although “history is not bound to repeat itself”, the precedent indicated the difficulty the Tories could be in without a rapid turnaround.

However he also said Labour had to think why its hold on the electorate was “apparently so weak” that it couldn’t overcome a local issue like Ulez in Uxbridge.

At the 2019 general election, the SNP won 48 of Scotland’s 59 seats, the Tories six, the LibDems four and Labour just one.

Looking ahead to the general election, Scottish Labour deputy leader Dame Jackie Baillie said the Selby result showed said the outlook for her party had changed dramatically.

She said: “This remarkable victory shows that change is coming to Britain and no Tory or SNP seat is safe from the Labour surge. While the Tories try to spin dismal failure into victory and the SNP look on in fear of a Labour resurgence, Labour is getting to work to gain the trust and support of working people.”

Scottish Tory chair Craig Hoy MSP insisted the election was “not lost”.

He told BBC Radio Scotland: “In the seats that we hold, or the seats that we’re targeting, it’ll be a straight choice between the Scottish Conservative and Unionist candidate and the SNP, there’ll be a very different dynamic at the next general election in Scotland."

SNP MP David Linden said: "These by-election results show people are sick of the Tories but don't trust the pro-Brexit Labour Party to deliver the real change we need.

"The last week has shown the SNP is the only party offering real change with independence - and real help with the cost of living. 

“In contrast, Rishi Sunak has trashed the economy and Sir Keir Starmer is too weak and unprincipled to oppose damaging Tory policies like the two child cap, Brexit, and cuts to public services.”