Anthony Martial was the mastermind of the first, skipping through the German defence before laying the ball off to his team-mate to knock home from a few yards.
Lacazette’s Gunners team-mate Mesut Ozil then got in on the act, releasing Timo Werner through on goal for the equaliser shortly after half-time with a fine pass.
But the night would belong to the 26-year-old, who sealed the win 15 minutes from time when running on to Kylian Mbappe’s through ball to slot between Kevin Trapp’s legs.
There wasn’t to be a repeat win for Les Blues after Euro 2016 as Lars Stindl equalised at the death. Ozil started the move, finding Mario Gotze who in turn met the run on Stindl with a neat flick.
It was Lacazette’s 29th and 30th goals for club and country during 2017, more than any other Frenchman and three more than closest rival Mbappe.