The Westphalians are now 10 points adrift of the Bundesliga leaders.
Heung-Min Son scored the only goal of the game after 18 minutes as Leverkusen cemented second place in the table, six points clear of their third-placed opponents.
The visitors had chances to win by a greater margin as they showed no nerves, even holding on after being reduced to 10 men for the last nine minutes when Emir Spahic was shown a red card. Sokratis Papastathopoulos' dismissal shortly after then evened up the numbers once more.
Leverkusen, one of only two teams to take anything off league leaders Bayern this season, showed they were not afraid of attacking in Dortmund either.
They made a lively start to the game with Emre Can testing Roman Weidenfeller early on before sending another effort just wide of the target.
Son then gave Leverkusen the lead in the 18th minute when he was put through by Gonzalo Castro's excellent pass after former Leverkusen defender Manuel Friedrich gave away possession cheaply in the midfield.
The South Korean kept his cool to round Weidenfeller and slot the ball in from a tight angle for his sixth goal of the season and his first away from home.
Son could have made it two for Leverkusen when he was put through on goal again by Simon Rolfes but Weidenfeller came out on top of the duel this time.
The game swung from end to end with both sides concentrating on attacking rather than defending, making for an entertaining game which saw Dortmund go in at the break behind for the first time this season.
The hosts went close to levelling early in the second half when Friedrich's header very nearly made its way through to Robert Lewandowski, but Stefan Kiessling popped up inside his own penalty area to clear the danger, typifying Leverkusen's determination to win.
That was manifested in a different manner by Spahic in the 81st minute when he lashed out at Henrikh Mkhitaryan, earning a straight red card for violent conduct.
Leverkusen coach Sami Hyypia sent Philipp Wollscheid on for Son to underpin his defence for the remaining minutes during which, with their backs to the wall, Leverkusen held on for a crucial away victory, aided by a second yellow card shown to Papastathopoulos in stoppage time.