Germany's Zverev, 20, beat Federer in last year's semi-final, but could not match the 18-time Grand Slam champion.
Federer's 92nd title moves him to within two of Ivan Lendl for second on the Open Era titles list. He tried his best to upset Federer's flow.
"I was doubting myself a little bit, I must admit, because losing (in the opening) round for the first time in 15 years on grass was always going to shake me a little bit and it did", Federer said.
Rising star Zverev - who had also won three finals out of three in 2017 coming into this encounter - kept pace with his illustrious rival at the start of set two, raising hopes of an increasingly competitive contest. So credits to him, he played an unbelievable match.
The 35-year-old Swiss, who is aiming for an eighth Wimbledon crown next month, beat his opponent 6-1 6-3 in just 53 minutes in Germany.
"I think going into Wimbledon he's going to be probably the favorite to win the whole thing", Zverev said of Federer.
"It is a dream to start a final like that and to pull through then".
Federer will go for his ninth title in the German city, which would mark the first time he has won a tournament as many times.
"And I didn't even know before that I could reach the fourth seed".
After enjoying good weather all week, the rain finally made an impact on semi-finals day at the Aegon Championships at Queen's, where Marin Cilic and Feliciano Lopez will contest Sunday's final.
The 21-year-old Khachanov right hander, is now third in the Emirates ATP Race To Milan, looking to qualify for the inaugural Next Gen ATP Finals in Milan at the end of the year.
Lopez, whose last tournament win was at Gstaad previous year, has never got past the quarter-finals at Wimbledon.
Petra Kvitova, the two-time Wimbledon champion who is making a courageous comeback from injury, will face unseeded giant-killer Ashleigh Barty in the final of the Birmingham grass court tournament.