Tory Louie French has become the UK’s newest MP following the Old Bexley and Sidcup by-election.
Mr French took more than half the votes in the contest, which was triggered by the death of former Cabinet minister James Brokenshire.
Turnout in the contest was just 34%, meaning the Tory majority was slashed from the almost 19,000 that Mr Brokenshire had in 2019.
Mr French had a 4,478 vote cushion over Labour, with Sir Keir Starmer’s party’s share of the vote increasing from 2019.
Reform leader Richard Tice came in third, claiming his party was now “on the upward march”.
Mr French used his acceptance speech to pay tribute to his “good friend” Mr Brokenshire, who died from lung cancer in October.
He said: “This has been a tough contest, which has been fought with dignity and respect.”
The by-election took place against a difficult backdrop for the Tories, after weeks of allegations about sleaze, Boris Johnson’s chaotic speech to the Confederation of British Industry, claims that lockdown rules were broken in No 10 last Christmas and the imposition of coronavirus restrictions following the emergence of the Omicron stage.
But Mr French insisted it was local issues which dominated the campaign.
“My focus will now be delivering on those promises that I made during the campaign – get our fair share of London’s police officers, securing more investment for local schools and hospitals, protecting our precious green spaces.”
He promised voters he would “work tirelessly to repay the trust that you’ve placed in me and I will not let you down”.
Mr French, a local councillor, said: “This is the greatest honour of my life. And I hope it inspires people to achieve their own dreams.”
Labour’s Daniel Francis secured 6,711 votes, almost 31% of the total, up from the 23.5% the party received in 2019.
The Tory vote share decreased – Mr Brokenshire had 64.5% in 2019, Mr French had 51.5% – and Labour pointed to a 10% swing in their favour.
Shadow solicitor general Ellie Reeves told the PA news agency: “We’re pleased with the result tonight.
“This is a Conservative stronghold, somewhere that had a 19,000 majority at the last general election and what we’ve seen tonight is that majority being slashed. There’s been a 10% swing over to Labour this evening.
“We’ve been knocking on doors for weeks here and finding many, many Conservative voters that have said actually I’m not going to vote for them this time, I’m going to vote for Labour.
“I think it’s clear that we’re winning back the trust of people and it’s a remarkable result for us in a Tory stronghold.”