Jurgen Klopp's side moved ahead of Borussia Monchengladbach on goal difference, but they missed a chance to close the gap on Bayer Leverkusen - who lost 3-2 at Freiburg - in second.
Dortmund took an early lead at Signal Iduna Park through Sven Bender, but the Germany international then levelled the scores in the second half as he put through his own goal.
Nuri Sahin restored Dortmund's lead just after the hour, only for Ji Dong-Won to net a 72nd minute equaliser against the side he will join at the end of the season.
Dortmund's frustration was compounded by an injury to Jakub Blaszczykowski, who suffered a suspected cruciate ligament problem before Bender's opener.
Like Klopp's team, Sami Hyypia's Leverkusen started well with an early goal and, although Admir Mehmedi levelled, the visitors were ahead at the break thanks to Simon Rolfes.
However, Freiburg produced a strong second-half comeback to win 3-2 thanks to Jonathan Schmid and a last-minute strike from Felix Klaus.
Mainz's 2-1 victory at Stuttgart was enough to move Thomas Tuchel's side into eighth in the table and extended their unbeaten run in the league to four matches, with substitute Benedikt Saller netting the winner three minutes from time shortly after coming off the bench.
Wolfsburg saw their nine-game unbeaten run come to an end against Hannover as Artoms Rudnevs and a double from Leonardo Bittencourt secured a 3-1 victory for Tayfun Korkut's men.
Elsewhere, Nuremburg boosted their survival hopes with a comprehensive 4-0 win over Hoffenheim, with the victory moving them to within three points of safety.
Alexander Meier's fourth league goal of the season fired Eintracht Frankfurt to a 1-0 win over Hertha Berlin, the 31-year-old netting in the 36th minute to extend their unbeaten run to three games and moving them clear of the bottom three.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.