Bundesliga: Hamburg 2 Bayer Leverkusen 1
Mirko Slomka's side begun the day just two points ahead of the rock-bottom Eintracht Braunschweig but moved out of the bottom three with a hard-fought home win, as Leverkusen's struggles continued.
Hakan Calhanoglu gave the hosts the early lead with a stunning strike from distance but his good work was undone by a howler from Hamburg's ex-Leverkusen goalkeeper Rene Adler.
Teenage forward Julian Brandt saw his 25-yard effort from distance dropped by Adler, who could only watch helplessly as it hit the back of the net.
The 17-year-old's goal – his first in the Bundesliga – came just before the hour-mark but Hamburg still had time to find a winner.
And an unlikely source provided it, as defender Westermann thrashed home an 82nd-minute volley from Dennis Diekmeier's cross that left Leverkusen goalkeeper Bernd Leno with no chance.
Hamburg claimed the lead in the fourth minute thanks to Calhanoglu's piece of individual brilliance.
The 20-year-old midfielder received the ball from Rafael van der Vaart before hitting a stunning long-range strike with his right foot.
The goal – which hit the bottom left corner of the net – was Calhanoglu's ninth of the season but Leverkusen nearly produced a quick response.
Stefan Kiessling saw his fierce strike well saved by Adler, just two minutes after they had conceded, and he nodded a header just wide as the visitors pressed for an equaliser.
Adler again saved well to keep out Heung-Min Son before the break but Brandt did eventually draw Leverkusen level – albeit with a large slice of luck.
Westermann's late effort looked to have sealed the win, but Adler was called on in stoppage time to make a great save to keep out Emre Can.
Adler came off his line to deny Can, who spurned his one-on-one chance, allowing Hamburg to move to 15th with their victory.
Leverkusen have now won just one of their last 12 matches in all competitions, but still sit fourth.