The win moves Leverkusen above RB Leipzig on goal difference, though Julian Nagelsmann's side can change that when they host Union Berlin on Wednesday.
Dortmund now find themselves level on points with fifth-placed Wolfsburg, who moved up with a 2-0 win away to Mainz as Bartosz Bialek and Wout Weghorst struck after the break.
Nico Elvedi's 66th-minute goal lifted Borussia Monchengladbach to seventh with a 1-0 win over Werder Bremen, while Hoffenheim moved clear of immediate trouble with a 3-0 win at Hertha Berlin. Andrej Kramaric scored twice after Sebastian Rudy's opener.
Sevilla moved up to fourth in LaLiga after surving a late missed penalty to win 2-1 away to Alaves.
Suso's left-footed shot put Sevilla back in front on the half-hour mark and that is how it stayed as Joselu missed a stoppage-time Alaves penalty after a handball from Jules Kounde.
Real Valladolid needed to come from two goals down to earn a point at home to Elche in a 2-2 draw, but finished the match with 10 men.
Josan's first-half double put the visitors in control but Michel got a goal back in the 71st minute before Joaquin headed in an equaliser in the 89th, although Roque Mesa saw red moments later.
It also finished 2-2 between Cadiz and Levante after a lively start.
Alberto Perea put Cadiz in front just four minutes in but Roger Marti scored in the eighth and 11th minutes to turn the game around before Juan Cala's equaliser just before the half-hour mark.