Superior France stun Germany in Bremen
The French, who have now gone 18 games undefeated after losing the first two under coach Laurent Blanc, grabbed the lead after 21 minutes when Giroud slotted in through goalkeeper Tim Wiese's legs.
Substitute Malouda fired in from close range midway through the second half before Germany substitute Cacau cut the deficit in stoppage-time.
Germany, missing several players through injury including midfielder Bastian Schweinsteiger, captain Philipp Lahm and speedy winger Lukas Podolski, lacked their usual offensive spark and were left seeking their first win against France since 1987.
"We knew that Germany were very strong offensively but we had studied a few weaknesses in the defence," Blanc told reporters.
"I fully enjoyed this game because it was two countries playing attacking football and of course my pleasure was ten-fold because we won," he said. "We had good chances, we saw goals and that was great."
The visitors, sprightlier than the hosts from the start, had the first real chance with Yohan Cabaye's header cleared on the line by Wiese in the 16th minute.
Giroud made amends five minutes later with the Montpellier striker tapping in from 10 yards after a clever cut-back in the box.
Germany, donning their new green shirts in honour of their 1972 European Championship victory, had trouble executing their game plan while the French pressed forward.
The hosts had to wait more than half-an-hour for their first real chance, a Mirsolav Klose shot that newly-appointed captain Hugo Lloris did well to block.
Real Madrid's Mesut Ozil, back at the Weser Stadium for the first time since leaving Werder Bremen to join the Spanish club in 2010, tried his luck from 25 metres with his shot flying narrowly wide on the stroke of half-time.
The speedy French did not let up in the second half, Mathieu Valbuena coming close on the hour with a long-range effort before Malouda fired in from a metre out in the 69th after the Germans failed to clear a low cross into the box.
Brazilian-born Cacau, who is battling for a spot in the Euro squad after losing his starting place at VfB Stuttgart, grabbed a late consolation goal for Germany, scoring from close range in stoppage-time.
"We are obviously a bit annoyed with the result but I am more annoyed about the way we lost," Germany coach Joachim Low told reporters. "We did have some chances in the first half but France were better."
"We had too big gaps in the defence. But we must keep in mind it was a long break since November, there were some changes, some injuries and you can lose your rhythm a bit.
"Once we are together for three or four weeks it will be much better."