Taylor Fritz claimed his first title of the year with a 6-3 7-6 (7-0) win over the top-seeded Zverev on Sunday, extending his winning streak against the German to five matches.
"I've had enough, stay away from me!" joked Zverev to Fritz at the presentation ceremony. "Please don't come to Germany for the next two or three years..."
It was his third loss in a home final on grass after defeats by Roger Federer in 2017 and by fellow German Florian Mayer in 2016, both in Halle.
Fritz, who knocked out Zverev in the fourth round of Wimbledon last year, won the opening set 6-3 in 30 minutes on Sunday without facing a break point.
The American second seed broke for a 5-3 lead after Zverev double-faulted twice and missed a volley at the net.
The second set stayed on serve, with Zverev saving the only break point at 5-5 before Fritz pulled away in a one-sided tiebreak to seal victory.
It was Fritz's ninth career title, fourth on grass, and improved his head-to-head record against Zverev to 8-5.
The 28-year-old German is yet to win a title on grass, a surface he has long struggled on. The three-times grand slam finalist has never progressed beyond the fourth round at Wimbledon.
World No.7 Fritz, who fired down 11 aces and didn't face a break point while winning 88 percent of his first-serve points, is set to rise to fourth in the rankings ahead of Wimbledon.
In the day's other men's grass-court final in the Dutch town of Rosmalen, Canadian Gabriel Diallo battled past Belgium's Zizou Bergs 7-5 7-6 (10-8).
In his second ATP Tour final after losing to Karen Khachanov in Almaty last October, the 23-year-old Diallo, who knocked out Australian Jordan Thompson earlier in the tournament, became only the fourth Canadian man this century to win a tour-level title, and the first to win a singles title on the grass.