A Tory campaign source acknowledged it “will be a very difficult night for us” in what has been an ultra-safe constituency for the party, while the Lib Dems believed they were going to cruise to victory in the vote triggered by the resignation of Owen Paterson.
The former minister had a near-23,000 majority at the 2019 general election when the Prime Minister won a landslide, but a Lib Dem source said they were on track for a “four figure majority”.
Lib Dem Treasury spokeswoman Christine Jardine was in a jubilant mood as votes were still being counted at the venue in Shrewsbury.
“The party is over for Boris Johnson,” the Edinburgh West MP told the PA news agency.
“It’s time to stop taking people for granted. It’s time to actually look at the issues that are concerning people. What we got on the doorsteps here was people saying to us that they are being taken for granted and that the Government is not paying attention to the issues that affect them.
“Conservative MPs right across those ‘Blue Wall’ seats will be looking over their shoulders.
“We think we’ve won and won comfortably.”
Tory MP Edward Timpson said a defeat on such a scale would present a “difficult moment” for the Prime Minister.
“I’ve already conceded it’s been a very difficult night for us and I’ll go away and chew on what we know,” he told Sky News.
The turnout was 46.3%, or 38,110 voters, and counting is expected to continue through the early hours.
Not only was the vote triggered by a Tory sleaze scandal, it comes after the Prime Minister was battered by allegations of lockdown-breaching parties in Downing Street last Christmas.
And his efforts to defend the seat followed the massive rebellion Conservative backbenchers dealt him on Tuesday over his new coronavirus restrictions as the Omicron variant surged.
Mr Paterson represented the constituency for 24 years until his resignation after the Prime Minister’s botched attempt to shield him from a 30-day suspension.
Mr Johnson attempted to force a Tory-led review of the rules for MPs after Mr Paterson was found to have breached lobbying rules for two companies paying him £100,000 a year.
Multiple fresh allegations of sleaze were levelled at the Tories during the row and ultimately the MP was forced to resign, saying he wanted to escape the “cruel world of politics”.
North Shropshire has returned a Tory MP in every vote since 1983, which was the constituency’s first election in its current form.
But the area has been true blue, only twice voting for another colour, since the Conservative Party’s inception in 1830.
In the 2019 general election, the Tories won 62.7% of the vote and held the seat with a majority of 22,949 over Labour, with the Lib Dems in third.
So a loss for Conservative candidate Neil Shastri-Hurst to Lib Dem Helen Morgan would be a major upset for the Tories.
Bookmakers have put the Lib Dems as favourite for victory, while campaigners on the ground suggested the result was too close to call and leader Sir Ed Davey described it as a “coin toss”.
Defeat would compound a torrid period for Mr Johnson after 100 Conservatives defied the leadership to vote against the introduction of mandatory Covid health passes for entry to large venues – the biggest rebellion since he entered No 10.
Asked on Wednesday if Mr Johnson would quit if North Shropshire falls, the Prime Minister’s press secretary said: “We are fighting for every vote.”
If the result touted by the Lib Dems is confirmed, Ms Morgan, a 46-year-old accountant who lives in the Shropshire village of Harmer Hill, will become the newest MP having beaten Tory candidate Neil Shastri-Hurst, a barrister based in Birmingham.
It would be the second by-election loss of a former Tory stronghold to the Lib Dems since the general election.
Chesham and Amersham had been a Conservative stronghold since the constituency’s creation in 1974, but the Lib Dems seized it with a 25% swing from the Tories in July.