The German benefited from an expert lead out by his Lotto teammates on the circa 8km finishing circuit the peloton took on twice, and was dropped off in the final stretch ahead of his rivals to launch his sprint.
21-year-old Ewan then latched onto his wheel as he searched for his first stage win of the race, and it quickly be came apparent that the victor would come from that pair.
But as Greipel hit full speed and drifted the right hand side of the rode, the Australian appeared to be boxed against the barriers and was forced to slow to try and move the other side around the man in the red points jersey.
That slight hesitation meant that there was nothing Ewan could do to recover, and Greipel crossed the line with hands aloft to celebrate his third stage victory in the 2016 Giro and extend his lead in the points competition. The German is expected to leave the race after the stage with a number of tough mountain stages on the horizon.
Watch: Caleb Ewan talks about his sprinting style
As Grand Tour stages go, this couldn't have fitted the 'rolling rest day' bill more, with not a hill in sight on the 168km route from Noale.
An obligatory break got away, with Daniel Oss (BMC) and Mirco Maestri (Bardiani-CSF) taking up the mantle, but never looked like competing for the win with a maximum gap of just over three minutes. They were inevitably pulled back with 30km to go.
With an average speed at near enough 40kmph, it was by no means a slow day at the Giro but one which had only one real test in the tight final circuit within Bibione. There was one minor crash within the final kilometre, but with no major difficulties (and a neutralised final circuit in the GC) the top-10 overall remained the same and Greipel was able to complete a hat-trick of victories.
Friday's stage 13 sees the riders hit the mountains again with four categorised climbs on the 170km route that will see Bob Jungels' (Etixx-Quick Step) forced to defend his narrow lead at the top of the GC once again.
Giro d'Italia stage 12, Noale - Bibione (168km)
1. André Greipel (Ger) Lotto-Soudal, in 4-16-00
2. Caleb Ewam (Aus) Orica-GreenEdge
3. Giacomo Nizzolo (Ita) Trek-Segafredo
4. Sacha Modolo (Ita) Lampre-Merida
5. Alexander Porsev (Rus) Katusha
6. Moreno Hofland (Ned) LottoNL-Jumbo
7. Ivan Savitskiy (Rus) Gazprom-RusVelo
8. Heinrich Haussler (Aus) IAM Cycling
9. Rick Zabel (Ger) BMC
10. Sonny Colbrelli (Ita) Bardiani-CSF, all same time
Overall classification after stage 12
1. Bob Jungels (Lux) Etixx-Quick Step, in 49-32-20
2. Andrey Amador (CRC) Movistar, at 24s
3. Alejandro Valverde (Esp) Movistar, at 1-07
4. Steven Kruijswijk (Ned) LottoNL-Jumbo, st
5. Vincenzo Nibali (Ita) Astana, at 1-09
6. Rafal Majka (Pol) Tinkoff, at 2-01
7. Ilnur Zakarin (Rus) Katusha, at 2-25
8. Esteban Chaves (Col) Orica-GreenEdge, at 2-43
9. Gianluca Brambilla (Ita) Etixx-Quick Step, at 2-45
10. Diego Ulissi (Ita) Lampre-Merida, at 2-47
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1