The German’s team had done much of the work in the closing kilometres, but for a time he looked to have been put out of contention as his rivals crowded around him.
Not to be denied, Greipel powered his way through to the front in time to leave his rivals behind and take the stage win.
Stage seven had looked like a day for Marcel Kittel (Etixx-Quick Step), but a late incident required him to change bikes and as such he was put out of contention for the stage win.
The early break consisted of six riders, who eeked out over three minutes at one point. Some may have picked this as a stage for an all day break, but the enough of the sprinters stayed in touch over the climbs for their teams to bring everything back together.
The members of the break were Stefan Kung (BMC Racing), Stefan Denifl (IAM Cycling), Giulio Ciccone (Bardiani-CSF), Ilia Koshevoy (Lampre-Merida), Daniel Martinez (Southeast) and Axel Domont (ag2r La Mondiale).
From this group, Kung went solo with 20km to go and pushed out an advantage of 25 seconds. His brave attempt at staying away lasted until 6.9km to go, and from there it was all about the sprinters.
Giro d’Italia 2016 stage seven, Sulmona – Foligno, (211km)
1. André Greipel (Ger) Lotto-Soudal, in 5-01-08
2. Giacomo Nizzolo (Ita) Trek-Segafredo
3. Sacha Modolo (Ita) Lampre-Merida
4. Caleb Ewan (Aus) Orica-Green-Edge
5. Enrico Battaglin (Ita) LottoNL-Jumbo
6. Matteo Trentin (Ita) Etixx-Quick Step
7. Alexander Porsev (Rus) Katusha
8. Alexy Tcatevitch (Rus) Katusha
9. Nicola Ruffoni (Ita) Bardiani-CSF
10. Elia Viviani (Ita) Team Sky, all same time
Overall classification after stage seven
1. Tom Dumoulin (Ned) Giant-Alpecin, in 29-23-23
2. Jakob Fuglsang (Den) Astana, at 26s
3. .Ilnur Zakarin (Rus) Katusha, at 28s
4. Bob Jungels (Lux) Etixx-Quick Step, at 35s
5. Steven Kruijswijk (Ned) LottoNL-Jumbo, at 38s
6. Alejandro Valverde (Esp) Movistar, at 41s
7. Diego Ulissi (Ita) Lampre-Merida, st
8. Vincenzo Nibali (Ita) Astana, at 47s
9. Kanstantsin Siutsou (Blr) Dimension Data, at 51s
10. Rigoberto Uran (Col) Cannondale, at 57s