Bastian Schweinsteiger could have opened the scoring as early as the third minute, but his firm strike was well blocked.
Bayern piled forward after the goal but despite decent chances for Mario Mandzukic and Thomas Muller, they could not find a way through.
However, in the dying seconds of the half Muller was found inside the box by Phillip Lahm to equalise with a calm finish.
Instead of Bayern pressing on, it was Dusseldorf who went back ahead in the 71st minute as Lambertz met a corner to tuck in his side's second.
It was to be the hosts who had the last laugh as Lahm again created, this time for Jerome Boateng to thump in the winning header.