Westermann had a chance to double Hamburg's lead before the break, but pulled his shot just wide following a Calhanoglu cross.
Both sides had chances in the final minutes of the opening half, with Son forcing another save before Van der Vaart was denied at the other end, but the hosts maintained their advantage at the break.
After a quiet opening spell in the second half, the visitors were able to get back on level terms when Julian Brandt drilled the ball in from 25 yards out, and initially appeared to have had the effort saved, but Adler allowed the ball to bobble underneath him.
Kiessling, Son and Giulio Donati all had chances to put Leverkusen ahead for the first time in the match as they dominated the possession, but they could not find the back of the net again.
Hamburg looked strong again as full time neared, and were able to regain the lead inside the final 10 minutes when Westermann smashed the ball into the top corner from a Dennis Diekmeier cross.
Adler had to remain sharp late on as Son tried to force in a stoppage-time equaliser for Sami Hyypia's side, but the keeper made the block to make sure of the win.