Erling Haaland didn't score for Dortmund but he had an unorthodox hand in both goals. First the young Norwegian intercepted a pass in the Gladbach midfield and set up Thorgan Hazard to score with a fine curled shot.
After Lars Stindl had leveled for Gladbach, Haaland took a spectacular tumble in an aerial challenge. With Gladbach's defense seemingly expecting the game to be stopped, Hakimi took full advantage to storm down the right flank and score the winning goal.
“When I look at today, it was a fight," Dortmund defender Mats Hummels said, highlighting how Dortmund has tightened up a previously leaky defense during its five-game winning run. “We've got the right balance now between artists and workers.”
Ahead of a Champions League last-16 clash with Paris Saint-Germain on Wednesday, Dortmund's win puts it one point behind Bayern Munich, which plays Augsburg on Sunday. Gladbach's unlikely title challenge now appears over — it could end the weekend nine points behind Bayern.
Leipzig could have gone level on points with Bayern, but drew 0-0 with Wolfsburg and is now third. Leipzig lacked firepower up front after leaving top scorer Timo Werner on the bench ahead of Tuesday's Champions League last-16 second leg against Tottenham.
Wolfsburg has one of the league's best defensive records and looked more than comfortable holding Leipzig at bay as Yussuf Poulsen and Emil Forsberg missed scoring chances. Werner finally came on in the 60th minute but couldn't turn the game around.
Leipzig has drawn four of its last six Bundesliga games and could drop five points off the lead if Bayern Munich beats Augsburg on Sunday. “We just wanted more,” Leipzig midfielder Konrad Laimer said. “We found it hard to find the final pass.”
Nineteen-year-old Brazilian Paulinho starred in his first league start of 2020 as Leverkusen moved up to fourth with a 4-0 win over Eintracht Frankfurt, overtaking Gladbach. Paulinho scored two goals, including one after a superb dribble from midfield, and set up Karim Bellarabi for another after creating space in Frankfurt's box.
Kai Havertz scored one and set up Paulinho's second in another good performance for the young German, who was subdued in the first half of the season but has six goals and seven assists in all competitions since the winter break.
Sixth-place Schalke made it six games without a win in all competitions, drawing 1-1 with Hoffenheim after Weston McKennie's solo goal was canceled out by Christoph Baumgartner's close-range finish from a corner.
Hertha Berlin and Werder Bremen drew 2-2 in a relegation scrap. U.S. forward Josh Sargent took advantage of space in the defense to score the opening goal for Werder, which took a 2-0 lead only for Hertha to fight back.
Freiburg climbed to eighth after beating Union Berlin 3-1.
More AP soccer: https://apnews.com/Soccer and https://twitter.com/AP_Sports