Helen Morgan, the Lib Dem candidate, won 17,957 votes, ahead of the Conservatives’ Neil Shastri-Hurst, on 12,032, a majority of 5,925. Labour’s Ben Wood was third, with 3,686 votes. Turnout was 46.3%.
The calamitous collapse in Conservative support – a 34% swing in a seat where they had a near-23,000 majority in 2019 – will prompt significant jitters among many Tory MPs, and is likely to raise questions about Johnson’s future.
It was a swing even greater than the 25% seen last June when the Lib Dems won the Chesham and Amersham byelection.
North Shropshire was seen as a notably greater challenge for the party, given it is a largely rural and strongly pro-Brexit constituency, one which has been Tory for all but two of the past 189 years, from 1904 to 1906. Morgan fought the seat in 2019 and came third, with 10% support.
The byelection was called after the former environment secretary Owen Paterson resigned in the wake of a botched attempt by Downing Street to save him from punishment for a serious breach of lobbying rules by rewriting the disciplinary system for MPs, which set off a string of damaging stories about other Tory MPs’ second jobs.
It was fought amid a wider atmosphere of damaging claims for Johnson and his government over allegations of lockdown-breaking Downing Street parties and a major Tory rebellion over Covid rules.
In her victory speech, Morgan, a 46-year-old accountant and parish councillor, repeatedly targeted the prime minister, saying Conservative voters had been “dismayed by Boris Johnson’s lack of decency and fed up with being taken for granted”.
“Tonight, the people of North Shropshire have spoken on behalf of the British people,” she told the count in Shrewsbury. “They have said loudly and clearly: Boris Johnson, the party is over.”
While earlier prime ministers “believed in a sense of national service”, Morgan said, with Johnson it was “all about you and never about us”. She added: “Our country is crying out for leadership. Mr Johnson, you are no leader.”
The Lib Dem leader, Ed Davey, who was not at the count as he has tested positive for Covid, spoke to Morgan by phone directly after her speech. In a statement he called the win “a watershed moment in our politics”.
He said: “Millions of people are fed up with Boris Johnson and his failure to provide leadership throughout the pandemic and last night the voters of North Shropshire spoke for all of them. This is the second stunning byelection victory this year for the Liberal Democrats – both in formerly safe Conservative seats.”
Leaving the count, Shastri-Hurst – who on Wednesday had declined four times during an interview to say that he believed Johnson was “a man of honesty and integrity” – gave no criticism of the prime minister.
Asked if Johnson was to blame, he said only that it had been “a disappointing result for us”, adding: “We’re 11 years into a Conservative government, byelections are never an easy thing to do.”
North Shropshire has been a safe Tory seat since its creation
The result will also raise questions about the Tories’ choice of an outsider to be their candidate. Shastri-Hurst is a barrister from Birmingham, something which prompted annoyance among some voters.
As soon as the byelection was called, the Lib Dems sought to present themselves as the only party capable of beating the Conservatives, and poured enormous resources into the area. Labour’s Wood campaigned hard but received notably less support from his party HQ.