The Lotto Belisol rider timed his sprint to perfection to come round the outside of Orica-GreenEdge's Matt Goss and beat the Australian into second on a slightly uphill finish.
Argentina's Juan Jose Haedo took third for Saxo Bank-Tinkoff Bank while world champion Mark Cavendish (Team Sky) suffered a rare off-day to finish only fifth, one place behind French pocket-rocket Samuel Dumoulin (Cofidis).
In-form Dutchman Tom Veelers (Argos-Shimano) took sixth ahead of veterans Oscar Freire (Katusha) and Alessandro Petacchi (Lampre) on a day his German team-mate Marcel Kittel was forced to abandon his debut Tour with a stomach complaint.
Another large crash inside the final three kilometres once again caused chaos in the peloton, with green jersey Peter Sagan (Liquigas) and American sprinter Tyler Farrar (Garmin-Sharp) notable riders hitting the tarmac - and Greipel somehow avoiding a similar fate.
The remnants of a four-man break was only swept up by the pack inside the last few hundred metres by which time it was each man for himself amongst the remaining sprinters.
Goss went early and looked to be in a strong position to take a maiden win in his debut Tour. But the in-form Greipel used his colossal thighs to power through the field and take another convincing win.
“It was a bit crazy because I was behind the crash with three kilometres to go. But Greg Henderson was waiting to take me back to the front and the Lotto Belisol train once again worked perfectly on the uphill finish. It was a hard sprint - one of the hardest I've ever done,” said Greipel, the first German since Erik Zabel in 1997 to notch back-to-back wins in the Tour.
Fabian Cancellara (RadioShack-Nissan) finished safely to retain his leader's yellow jersey. The Swiss leads Britain’s Bradley Wiggins (Team Sky) and Frenchman Sylvain Chavanel (Omega Pharma-Quick Step) by seven seconds in the overall standings.
Slovak youngster Sagan, the only other rider to win two stages so far on this year’s Tour, still leads the green jersey standings but now faces stiff competition from both Goss and Greipel.
Sagan leads with 155 points with Goss now on 137 and Greipel with 132. Cavendish picked up maximum points in fifth position following the breakaway at the intermediate sprint and sits in fourth place on 132 points.
The break – which featured Frenchmen Mathieu Ladagnous (FDJ-BigMat) and Julien Simon (Saur-Sojasun), Spaniard Pablo Urtasun (Euskaltel) and Belgian Jan Ghyselinck (Cofidis) – leapt clear of the peloton right after the start of the 196.5km stage from Rouen.
Under ominous grey skies and the odd shower, the quartet built up a maximum lead of 5:35 through the flat Picardy plains north of Paris.
With 20km remaining, the break was riding with a slender advantage of just over a minute and seemed destined to be reeled in comfortably.
But the chase from the peloton was half-hearted following a series of large crashes in previous stages. Miraculously, the escapees were still a dozen seconds ahead as they passed under the flame rouge. Ghyselinck, riding his debut Tour, put in a huge attack to open a large gap – and the Belgian was then caught by Urtasun inside the final 300m.
The peloton in general – and Lotto train in particular – had timed things with aplomb, however, catching the escapees inside the closing moments.
Cavendish, once again isolated, never looked comfortable and it was left to the sprinter of the moment, 29-year-old Greipel, to take his 15th win of the season – drawing level with that man Sagan.
It was a career third win on the Tour for Greipel, who will go into Friday’s 207.5km flat stage from Epernay to Metz as the overwhelming favourite to secure a historic hat-trick.