Kai Havertz became the third-youngest player to reach 50 Bundesliga wins - scoring in the process - as Bayer Leverkusen beat Union Berlin 3-2.