Lopez saved all nine break points he faced against the third-seeded Berdych.
Zverev defeated Haas 6-4, 6-4 for a semifinal against Lopez.
The 39-year-old Haas, who defeated Roger Federer in the second round on Wednesday, was playing for the last time at the grass-court tournament.
"I'm a bit sorry, especially because I could always hear his daughter, who shouted, 'Come on, Daddy!'" Zverev said. "They're special moments. He's a champion."