Antonio da Silva's strike late in injury time earned a point for wasteful Dortmund.
Hoffenheim saw little of the ball in the first half, but in a rare opportunity on goal, Demba Ba ghosted behind the Dortmund defence to tap in Luis Gustavo's low cross. The hosts had a chance to equalise five minutes later, but failed to do so amid a bit of controversy. After Isaac Vorsah conceded a penalty for a hand ball, Nuri Sahin was forced to take his penalty twice. The first went in off the right post but was called back for infringement; the second was expertly saved in the left by goalkeeper Tom Starke.
As full time approached, the hosts upped their pressure repeatedly before a stroke of luck created the equaliser. Substitute Antonio da Silva earned a controversial free kick deep in injury time, and curled his set piece into the upper-right corner to earn a deserved point.
Before Ba's opener, Kevin Grosskreutz appeared to have a good chance, but was called offside. Later in the half, Boris Vukcevic did well to make some space, but his shot was neither strong nor accurate enough to beat Roman Weidenfeller and double the visitors' lead.
After the break, playmaker Mario Goetze replaced holding midfielder Sven Bender, and BvB went into pure, all-out attack mode. For all their possession, the hosts lacked fluency, however, and Hoffenheim were content to resort to fouling as necessary. Vukcevic had the best effort of the half on 63 minutes, when he sent an off-balance strike towards the top-right corner of Weidenfeller's goal. The 'keeper tipped it off his bar, and Ba was not quite able to put in the scraps.
Moments earlier, Lucas Barrios forced a stunning save from Tom Starke, who deflected the Paraguayan striker's effort just wide of the left post. Dortmund's next decent chance did not come until the 84th minute, when Mats Hummels blasted an effort wide of the left post. Towards the end, BvB frantically sent the ball forward, hoping for a lucky bounce, but the difference-maker came through an exquisite bit of skill from Da Silva, whose free kick was celebrated by the deafening cheers of more than 80,000 fans. Reacting to the goal, Sejad Salihovic was livid, and earned a second booking from referee Wolfgang Stark.
The result leaves Dortmund atop the Bundesliga table, although Mainz are just one point behind with a game in hand. Hoffenheim nearly moved third, but instead will have to settle for fifth place, seven points behind BvB.