Leverkusen make most of Dortmund draw
Leverkusen's win also marked the return to action of Germany captain Michael Ballack as a second-half substitute, after missing four months with a shinbone injury.
"It was a fantastic feeling to be on the pitch again," the 34-year-old Ballack told reporters. "It was good to come on at 2-0 because it makes it easier for a substitute."
The visitors looked to be cruising to an easy win when they struck in the 37th minute with Michal Kadlec's curling free-kick before unmarked Gonzalo Castro doubled their lead with a close-range header just before half-time.
Gladbach, who twice hit the crossbar, struck back with arguably the best goal of the weekend through Austrian Martin Stranzl, who picked up the ball on the right and released an unstoppable shot over goalkeeper Rene Adler just past the hour.
But with the hosts, anchored in last place, out in full force in search of an equaliser, Castro grabbed his second goal of the evening, rounding off a quick break with a chip in the 73rd minute.
In the other match on Sunday, Hoffenheim grabbed a last-minute equaliser through David Alaba to salvage a 2-2 draw at home to relegation-threatened St Pauli, who thought they had won it when former Germany international Gerald Asamoah gave them a 2-1 lead in the 82nd minute.
On Saturday, Dortmund had to settle for a 1-1 draw against VfB Stuttgart to move up to 47 points, with Leverkusen on 36 after 19 games.
Champions Bayern Munich moved up to fourth place on 33, a point behind Hanover 96, following their 5-1 demolition of Kaiserslautern, also on Saturday.