Team High Road-syklisten spurtslo lagkamerat Mark Cavendish fra Storbritannia, som ble nummer to.
Cavendish er spurtspesialist, men lot sin tyske hjelper få dagens etappeseier.
Daniele Bennati fra Liquigas ble nummer tre.
Les:
Greipel, som er en ren hjelperytter, brukte 3.27.05 minutter på de 146 kilometerne mellom Sondrio og Locarno i Sveits.
Beholdt ledelsen
Spanieren Alberto Contador er fortsatt i føringen sammenlagt, 41 sekunder foran italieneren Riccardo Rocco.
Gilberto Simoni er på 3.-plass, 1.21 minutter bak Contador.
Lenge så det ut til Mikhail Ignatijev skulle vinne etappen, men hans utbrudd ble hentet inn et par kilometer fra mål.
Giroen vender tilbake til Italia torsdag. Da venter en 147 kilometer lang etappe mellom Mendrisio i Sveits og Varese i Italia.