Both sides were missing key players, but France showed greater imagination in a match that failed to reach the intensity of previous meetings between the two great rivals.
Oliver Giroud, the top scorer in the French league, put the visitors ahead in the 21st minute with a simple finish. Florent Malouda effectively sealed the win in the 69th, seven minutes after coming on as substitute.
Germany striker Cacau scored an injury-time consolation for the hosts.
France, which had to endure a playoff to qualify for Euro 2012, has not lost a game since a 2-0 loss to Spain on March 3, 2010.