The centre-back’s powerful 13th-minute header decided the nervy encounter between two sides who have traditionally produced sensation matches.
Hummels also blocked a late strike by Karim Benzema in a man-of-the-match performance at Rio de Janeiro’s Maracana Stadium.
“Germany were on a higher level today,” said a disconsolate French manager Didier Deschamps, who suffered his first defeat in 11 World Cup games as either a player or coach.
Germany now face either Brazil or Colombia in Tuesday’s semi-final at Belo Horizonte.
The Germans produced a polished, improved display on their extra-time win over Algeria in the last 16, to constantly frustrate France’s potent attack spearheaded by Benzema.
This is the 13th time in 20 attempts Germany have reached the World Cup’s semi-finals and the fourth in succession since bowing out of the quarter-finals at France ’98.
Seven of the German squad had suffered with mild flu in the build-up as Hummels retured to take Per Mertesacker’s place at centre-back.
Miroslav Klose, joint top-scorer at World Cup finals with 15 goals, was prefered up front with Thomas Mueller switching to the right wing.
Deschamps made two changes from the side who beat Nigeria in the last 16 with centre-back Mamadou Sakho back after a hamstring complaint while Antoine Griezmann replaced Olivier Giroud in attack.
Despite the Germans stranglehold on early possession, the first real chance feel to Benzema, who fired wide after seven minutes.
The Germans took the lead when Hummels, back in the side after missing Monday’s win over Algeria with flu, rose highest to head Toni Kroos’ free-kick.
His bullet header smashed in off the crossbar to claim his second goal of Brazil 2014 having also scored with a similar header in the 4-0 opening win over Portugal.
The goal rocked the French defence as the Germans started exerting pressure.
Klose’s run into the box was held back by a tug on his shirt from right-back Mathieu Debuchy, while a Thomas Mueller half-chance was quickly snubbed out.
France’s best chance came on 33 minutes when Mathieu Valbuena’s shot was saved by Manuel Neuer and Benzema failed to control the follow-up, firing over the bar.
The French came close to being awarded a penalty just before the break when Benzema’s header hit Hummels in the stomach, missing his hands by inches.
The Real Madrid star then later fired straight at Neuer on a frustrating afternoon as it stayed 1-0 to Germany at the break.
Sami Khedira earned a deserved booking for fouling Griezmann on 54 minutes as France enjoyed a good spell of pressure as centre-back Raphael Varane’s header went straight to Neuer’s grateful hands.
Deschamps threw on forward Loic Remy and defender Laurent Koscielny for the final 20 minutes in a final throw of the dice.
But Germany’s replacement Andre Schuerrle should have made it 2-0 when he fired at French goalkeeper Hugo Lloris’ feet, then had a late shot blocked.
Neuer’s late save to deny Benzema means Germany head coach Joachim Loew has now reached the semi-finals of all of the last four major tournaments during his eight-year reign.