The Liberal Democrats have caused a major upset in the Richmond Park by-election, overturning a 23,015 majority to oust ex-Tory MP Zac Goldsmith.
Mr Goldsmith stood as an Independent after leaving the Conservative Party in protest at the government’s decision to back a third Heathrow runway.
But Lib Dem Sarah Olney, who is also opposed to Heathrow expansion, fought the campaign on the issue of Brexit.
She polled 20,510 votes to Mr Goldsmith’s 18,638.
The remaining six candidates, including Labour’s Christian Wolmar, all lost their £500 deposits as they did not receive a big enough share of the vote.
The Conservative Party, UK Independence Party and Green Party did not field candidates.
As the new Lib Dem MP for Richmond Park and North Kingston, Ms Olney will be the party’s only female MP – joining eight male colleagues.
She said the by-election result was a rejection of the “politics of anger and division”.
She added: “The people of Richmond Park and North Kingston have sent a shockwave through this Conservative Brexit government, and our message is clear – we do not want a hard Brexit.
“We do not want to be pulled out of the single market, and we will not let intolerance, division and fear win.”