Lib Dem warhorse Sir Vince Cable has swept back into his former Twickenham seat with 34,969 votes.
The 74-year-old ousted the Conservatives' Dr Tania Mathias, who snatched the seat in 2015 with a majority of just 2,017.
Ophthalmologist Dr Mathias, 52, who has worked with aid agencies in the Gaza strip, and with HIV, Aids and TB patients in South Africa, polled 25,207.
A total of 66,455 votes were cast or 79.7% of the electorate, up from 77.42 in 2015.
During the campaign Sir Vince, who served as business secretary in the 2010-15 coalition, batted away criticisms that he was too old and vowed to focus on being a "good constituency MP" if he won back his seat.
He fought his campaign on an agenda of opposing school cuts, promoting further education, protecting hospitals and supporting small businesses.
Sir Vince said: "I would like to thank Tania. When I lost two years ago she was extremely gracious about me and I would like to reciprocate.
"It was just her misfortune that the Prime Minister decided to call an election when she had only had two years to prove herself in the job."
He added that the night's result proved politicians and the electorate had to learn to speak to each other "more consensually" on issues like Brexit.
Speaking to reporters, Sir Vince repeated party leader Tim Farron's assertion that the Liberal Democrats would not enter into a coalition government.
He also commiserated over the loss of Nick Clegg's Sheffield Hallam seat, saying: "I'm very sorry, he was a good man. He was particularly important, he was one of the people who understood the EU process and he had enormous experience."
Labour's Sarah Catherine Dunn came third with 6,114 votes.
Twickenham voted 69.3% Remain in the Brexit referendum.
Dr Mathias describes herself as "Eurocautious" but also voted Remain.