Mats Hummels opened the scoring just before half-time before Robert Lewandowski and Marco Reus put the seal on a comfortable win with their second-half strikesBorussia Dortmund ensured that Bayern Munich will have to wait at least another few days before clinching the Bundesliga title by beating Hannover 3-0 on Saturday afternoon.
The Bavarians could have defended their title with victory against Mainz, but only if Dortmund and Schalke both lost.
However, Jurgen Klopp's side put any potential celebrations on ice with a professional road win that keeps them second.
Defender Mats Hummels put them in front just before half-time with a close-range finish and Robert Lewandowski sealed the result with an outstanding solo goal seven minutes after the break.
Substitute Marco Reus wrapped up the win in the 90th minute with a clever effort as Dortmund produced a well-timed win ahead of Tuesday's Revierderby against Schalke.
Marcel Schmelzer (groin) and Pierre-Emerick Aubameyang (muscular problems) missed out for Dortmund, with the former's absence meaning coach Klopp picked his 16th different back four of the season.
That defensive group were tested in the early stages as former Dortmund midfielder Leonardo Bittencourt turned an effort wide before the hosts were denied by the woodwork in the 18th minute.
A free-kick from the left was not cleared by Dortmund, with Hummels' header falling to Andre Hoffmann, who thrashed an effort against the right post with goalkeeper Roman Weidenfeller beaten.
Kevin Grosskreutz was lively down the left from the first minute and forced Ron-Robert Zieler into a good save, while at the other end, Weidenfeller did well to tip a Lars Stindl strike wide.
Dortmund took the lead two minutes before the break, somewhat against the run of play, when Hummels reacted quickest to a knock-down from defensive partner Sokratis Papastathopoulos. Jonas Hofmann crossed into the box and Sokratis' header was stabbed home by Hummels from six yards.
Dortmund picked up where they left off after the break as Lewandowski scored a goal that showed why Bayern – who he will join at the season's end – invested so much time in chasing him.
The Poland forward received a long ball inside his own half and left a trail of defenders in his wake as he surged up the left wing and then cut inside.
Hoffmann, Manuel Schmiedebach and Christian Schulz were among the defenders left fooled, with the latter's desperate lunge unsuccessful, as Lewandowski, who was always trying to shoot with his right foot, fired across Zieler and into the back of the net.
Hannover pressed for a response but Dortmund, also missing the injured Sven Bender, Jakub Blaszczykowski, Ilkay Gundogan and Neven Subotic, were comfortable in the latter stages.
And although Reus was guilty of missing a late sitter, turning over from three yards, he rounded Zieler and scored from a tight angle to cap off Dortmund's victory.