Leverkusen s Edmond Tapsoba, left, and Dortmund s Sebastien Haller vie for the ball during the German Bundesliga soccer match between Bayer Leverkusen and Borussia Dortmund at the BayArena in Leverkusen, Germany, Germany, Sunday, Jan. 29, 2023. AP
Haller, making his third Dortmund appearance since returning to the team earlier this month, was crucial in both goals.
The Ivory Coast striker let the ball run through his legs for Karim Adeyemi's first-half goal, before pressuring Leverkusen's Edmond Tapsoba into an own goal in the second period.
Leverkusen started the match by consistently finding space around Dortmund's centre-backs as teenage midfielder Florian Wirtz, just back from an ACL tear, pulled the strings.
Wirtz found Moussa Diaby in the penalty box and the French forward unleashed a right-footed shot that forced Dortmund goalkeeper Gregor Kobel into an acrobatic save.
Dortmund gained composure and began troubling Leverkusen on the counter, with Jude Bellingham, who missed the midweek win over Mainz due to suspension, once again the vital cog in the build-up to his team's opener.
He picked out Germany midfielder Julian Brandt, who delivered a low cross that Haller dummied to allow Adeyemi to score.
The goal was Adeyemi's first in the Bundesliga since arriving in the summer from Red Bull Salzburg, where he scored 23 times in all competitions last season.
Leverkusen continued to press high hoping for an equaliser, but Dortmund scored again on the counter in the 53rd minute.
Bellingham was crucial once more, driving a low cross to winger Marius Wolf, who returned the ball into a crowded area.
Under pressure from the advancing Haller and Bellingham, Leverkusen's Tapsoba sent the ball into his own net to double the visitors' lead.
Despite a more assured performance from Germany centre-back Niklas Suele, Dortmund's shaky defence looked vulnerable in the closing stages, presenting Leverkusen with several half-chances.
Dortmund forward Marco Reus came off the bench in the 85th minute, making his first appearance since November.
A third successive win for Dortmund to start the new year sent them up to fourth, while Leverkusen dropped to ninth after seeing their five-match winning run snapped.
- Schalke stay bottom -
Schalke remain stranded at the bottom of the table after a dour 0-0 draw at home against Cologne.
One of German football's traditional heavyweights, Schalke are six points from safety having won just twice on their return to the Bundesliga this season.
They have lost 11 of their past 13 matches in all competitions.
Schalke started strongly against Cologne and almost took the lead after just three minutes when debutant Moritz Jenz's goal-bound shot was kept out by a fingertip save from Marvin Schwaebe.
Cologne, buoyed by their midweek draw away at Bayern, grew confident despite the hostile crowd and went close early in the second half when a header from defender Timo Huebers hit the woodwork.
Tempers flared in Gelsenkirchen as the match wore on, with four yellow cards in the final 15 minutes, but defences held firm in a result which is likely to disappoint both teams.
Cologne, unbeaten since the winter break, now sit in 12th place, six points from the relegation play-off spot.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)