Boris Johnson has vowed to “listen to voters” and “keep going” despite suffering a pair of humiliating by-election defeats.

The Conservatives lost control of Wakefield in Yorkshire to Labour, a “Red Wall” seat it snatched in 2019, and Tiverton and Honiton in Devon to the Liberal Democrats, who overturned a 24,000-strong majority.