Dortmund's Mario Goetze opened the scoring for the visitors when he superbly drilled in through the legs of defender Andreas Beck and past keeper Koen Casteels in the 26th minute.
Hoffenheim's Sven Schipplock, however, levelled nine minutes later, stabbing the ball in from close range.
Dortmund, who had lost ground in the title race following two draws and a defeat in their last three league matches, renewed their lead early in the second half with Kevin Grosskreutz rounding off a quick move started by Goetze.
The goal took any will to fight out of the hosts and Poland striker Robert Lewandowski rounded Casteels to score his tenth league goal in the 66th.
Dortmund, who host Hanover 96 in the German Cup round of 16 on Wednesday, move up to third on 30 points, 12 behind leaders Bayern Munich and three behind second-placed Bayer Leverkusen, who beat Hamburg 3-0 on Saturday.
Hoffenheim's sixth straight league defeat left them in the relegation playoff spot, seven points behind 15th placed VfL Wolfsburg.
Leaders Bayern Munich drew 1-1 against Borussia Moenchengladbach on Friday to go into the break with a nine-point cushion over Leverkusen. (Reporting by Karolos Grohmann; editing by Toby Davis)
- Sports & Recreation
- Sven Schipplock