Boris Johnson has said he is “very disappointed” following a huge by-election defeat for the Conservatives.
The Lib Dems took the ultra-safe Tory seat of North Shropshire after a week dominated by claims of Covid rule-breaking in No 10 and a revolt by Mr Johnson’s own MPs over restrictions.
The PM blamed a “constant litany of stuff about politics and politicians” in the media for the result.
But the Lib Dems said voters were “fed up” with Mr Johnson’s “incompetence”.
The party’s candidate, Helen Morgan, overturned a Tory majority of almost 23,000 at the last general election to win by 5,925 votes.
Veteran Tory backbencher Sir Roger Gale warned Mr Johnson he was on “final orders”, adding that the by-election “has to be seen as a referendum on the prime minister’s performance”.
Fellow Tory MP Sir Charles Walker told Sky News the prime minister had made “mis-steps”, adding: “He can’t afford for that to continue.”
And former Scottish Conservative leader Baroness Davidson of Lundin told BBC Radio 4’s World at One that Mr Johnson was “drinking in the last-chance saloon” and MPs were looking for a leader with “less of the drama”.
- Has Boris Johnson lost his winning touch in the North Shropshire by-election?
- British PM Boris Johnson to make final Brexit offer Wednesday
Mr Johnson said: “Clearly the vote in North Shropshire is very disappointing result. I totally understand people’s frustrations.
“I hear what the voters are saying. In all humility I’ve got to accept that verdict.”
The North Shropshire defeat comes at the end of a torrid week for Mr Johnson.
On Tuesday, he experienced his biggest rebellion since becoming prime minister when 100 Conservative MPs voted against the government’s proposals to introduce Covid passes in England.
There have also been rows about a Number 10 Christmas party during lockdown restrictions last December and Mr Johnson’s appearance at a virtual quiz alongside two colleagues at about the same time.
The prime minister put much of the blame for the by-election defeat on the media, saying: “In the last few weeks some things have been going very well, but what the people have been hearing is just a constant litany of stuff about politics and politicians and stuff that isn’t about them – and isn’t about the things we can do to make life better.
“The job of the government is to make people like you [journalists] interested in the booster roll-out and skills and housing and everything else we’re doing.
“Unfortunately we haven’t been able to get the focus on those issues.”
The Conservatives had held North Shropshire, and its predecessor seats, since the 1830s, with previous MP Owen Paterson retaining it by almost 23,000 votes at the last general election.
But Mr Paterson quit after he was found guilty of breaking parliamentary rules on lobbying – trying to influence government policy – in return for payment.
The government is going to try and say this is mid-term misery – and, yes, by-elections are a way the public can stick two fingers up to a government when they’re cross.
But let’s be plain: this is an appalling result for the Conservatives, in a part of the country where the tradition of voting Tory is baked into the earth. This isn’t a little slip up; it’s a disaster.
People on the ground say the Tory campaign was going OK, until all of the recent shenanigans in Downing Street emerged, and that that is when support fell off a cliff.
Boris Johnson does have an extraordinary ability to bounce back. But there are people in the Conservative Party who are pencilling in the possibility of a summer leadership election.
Things are febrile, and we shouldn’t predict things with any certainty – but there’s no doubt this is a really dangerous moment for the prime minister.
In her victory speech, Ms Morgan: “Tonight, the people of North Shropshire have spoken on behalf of the British people. They have said loudly and clearly, ‘Boris Johnson, the party is over’.
“Your government, run on lies and bluster, will be held accountable. It will be scrutinised, it will be challenged and it can and will be defeated.”
“As your MP, I promise I will work for you and only you,” Ms Morgan added. “I will always put local people and our communities first.”
Lib Dem leader Sir Ed Davey, who is isolating after being diagnosed with Covid, said: “Liberal Democrats have proven the Conservatives can be beaten anywhere. And I think people are so fed up with Boris Johnson, so fed up with his incompetence and his behaviour, I think they’ll be really happy about that.”
Ms Morgan’s win takes the number of Lib Dem MPs up to 13, still significantly down from a high of more than 60 during the mid-2000s. The party lost dozens of its seats at the 2015 general election after being part of a coalition government with the Conservatives and has struggled to recover.
Fourteen candidates stood in the North Shropshire by-election. Ms Morgan took 17,957 votes, with Conservative Dr Neil Shastri-Hurst amassing 12,032 and Labour’s Ben Wood coming third with 3,686.
It is the second loss of a former Conservative stronghold to the Lib Dems since the general election, with the party seizing Chesham and Amersham, in Buckinghamshire, with a 25% swing in July.
Labour, which came second in North Shropshire at the 2019 election, saw its share of the vote fall from 22.1% to 9.7%.
Shadow business secretary Jonathan Reynolds told BBC Breakfast: “We put the effort into it that was proportionate to our chances of winning.
“But clearly people wanted to send a message to the government that they’re fed up with the incompetence, the sleaze, the kind of revelations we’ve seen over the last few weeks.”