Andre Schurrle gave the home side the lead after 12 minutes, before Wolfsburg defender Simon Kjaer equalised in the 70th minute.
Leverkusen have secured just two wins in their last five matches to move to 49 points, four more than Schalke, who beat Werder Bremen and moved to within four points of Bayer as the chase for third place and Champions League football hots up.
The hosts took the lead at the BayArena in the 12th minute as Kjaer let the ball get away from him, allowing Lars Bender to cross from the right to the far post - where Schurrle volleyed in.
Schurrle's next attempt five minutes later was blocked and Wolfsburg goalkeeper Diego Benaglio held a shot by Stefan Kiessling in the 18th minute.
The hosts had one more opportunity two minutes before the break but Wolfsburg defender Naldo cleared Kiessling's shot just in time.
Benaglio made another fine save in the 48th minute against Sidney Sam to keep Wolfsburg in the game.
The visitors finally tested Bernd Leno five minutes later, Naldo's header forcing the Leverkusen goalkeeper to make a strong stop.
Kjaer made up for his mistake to equalise for Wolfsburg after 70 minutes, the Dane heading in a free-kick by Ricardo Rodriguez off the inside of the far post.
Benaglio saved a point for Wolfsburg in the 80th minute, fending away a close-range Kiessling header, as Wolfsburg held on for a fourth match unbeaten to move up to 33 points.