Borussia Dortmund fell to a narrow 3-2 defeat against Bayer Leverkusen in an entertaining encounter at Signal Iduna Park.