Henrikh Mkhitaryan scored one goal and set up another for Borussia Dortmund to win 3-1 at Borussia Moenchengladbach and keep pace with Bundesliga leader Bayern Munich on Saturday.
Both sides hit the crossbar early on - Andreas Christensen for 'Gladbach, Ilkay Gundogan for Dortmund - before Marco Reus finally broke the deadlock in the 41st minute.
Gundogan played a brilliant pass for the Germany winger to slot clinically inside the far post beyond the helpless Yann Sommer.
"I had many nice years here, it was a sign of respect. I owe this club a lot," Reus said of the heart sign he made after scoring against his former club.
Reus also had a hand in the next goal in the 50th, when Mkhitaryan thought he'd sealed it for the visitors. Mats Hummels won the ball from Ibrahima Traore, and it went from Gundogan to Reus, who drew three defenders toward him before finding the unmarked Mkhitaryan to scoop the ball into the net.
Raffael pulled one back eight minutes later to rekindle the contest, sparking chances at both ends, with Pierre-Emerick Aubameyang going close for Dortmund before Sokratis made a crucial tackle to deny Traore.
Aubameyang missed a good chance to seal it before Mkhitaryan set up Gundogan to do just that in the 75th.
Jonas Hofmann, who joined 'Gladbach from Dortmund in the winter break, missed a late chance for the home side.
"We made a few mistakes that you cannot make against a team as good as Dortmund. Then up front we had a few chances that we didn't take. And the two things come together," 'Gladbach coach Andre Schubert said after his first league defeat at home. "We're a young team. We have to learn from these things."
Dortmund stayed eight points behind Bayern, which won 2-1 at Hamburg SV on Friday and has only dropped four points so far, and moved 12 points clear of fourth-placed 'Gladbach.
"Hopefully we can keep increasing the gap so we'll be certain of at least second place," Gundogan said.
Earlier, striker Hugo Almeida scored on his return to the Bundesliga but couldn't prevent his new club Hannover from slumping to a 2-1 home loss to Darmstadt.
Almeida, who joined from Anzhi Makhachkala during the winter break, scored 10 minutes into his Hannover debut, only for Sandro Wagner to equalize from close range, and then convert the rebound after Jan Rosenthal's header struck the post right after halftime.
Hannover is now bottom after its seventh defeat from nine games at home.
"We handled many situations and answered many questions well. But sometimes there was also a question mark too many for us," said Hannover coach Thomas Schaaf after his first game in charge. The former Werder Bremen coach took charge of the struggling side on Dec. 28 and signed Almeida on Jan. 16. The Portuguese striker enjoyed a successful 3 1/2 seasons under Schaaf at Bremen until 2010.
Stuttgart came from behind to win at Cologne 3-1 and climb out of the relegation zone.
Cologne, which was playing in its carnival-themed strip, went ahead through Anthony Modeste's penalty, only for Daniel Didavi to equalize before the interval. Timo Werner headed Stuttgart in front in the second half, and Christian Gentner sealed it late.
"I'm very happy that we've had a good start to the second half of the season," said Stuttgart coach Juergen Kramny, now unbeaten in five competitive games.
Bayer Leverkusen captain Omer Toprak scored with 15 minutes remaining to salvage a 1-1 draw at Hoffenheim, which opened the scoring through Jiloan Hamad's fine strike.
Also, Ingolstadt defeated Mainz 1-0 at home thanks to Moritz Hartmann's penalty, and Hertha Berlin played out a scoreless draw with visiting Augsburg, enough to stay third, eight points behind Dortmund.