The Conservatives have lost the North Shropshire seat they held for nearly 200 years to the Liberal Democrats in a by-election blow to Boris Johnson.
Winner Helen Morgan overturned a Tory majority of almost 23,000, declaring that the "party is over" for the PM.
The result follows a torrid week for Mr Johnson, who has faced criticism over Downing Street parties and a rebellion by his own MPs over Covid measures.