Sky’s efforts on the technical run-in caused little gaps to appear, though the chief sprinters – Andre Greipel (Lotto-Soudal), Gaviria, Ewan et al were all well placed.
Lukas Postlberger (Bora-hansgrohe) led the way under the flamme rouge for Bennett, but Orica-Scott got a rider in between and Ewan opened the sprint up first.
It gave him the choice of road position round the final bend, but Ewan had timed his kick to perfection to hold off Bennett and a resurgent Gaviria – who had appeared to be boxed in just moments earlier – to grab the stage win.
Giro d’Italia 2017: stage seven – result
1) Caleb Ewan (AUS) – Orica-Scott – 5.35.18hrs
2) Fernando Gaviria (COL) – QuickStep Floors – ST
3) Sam Bennett (IRL) – Bora-hansgrohe
4) Andre Greipel (GER) – Lotto-Soudal
5) Jasper Stuyven (BEL) – Trek-Segafredo
6) Ryan Gibbons (RSA) – Dimension Data
7) Enrico Battaglin (ITA) – LottoNL-Jumbo +2”
8) Rudiger Selig (GER) – Bora-hansgrohe
9) Alexey Tsatevich (RUS) – Gazprom-RusVelo
10) Vincenzo Nibali (ITA) – Bahrain-Merida
General classification
1) Bob Jungels (LUX) – QuickStep Floors – 33.56.07hrs
2) Geraint Thomas (GBR) – Team Sky +6”
3) Adam Yates (GBR) – Orica-Scott +10”
4) Vincenzo Nibali (ITA) – Bahrain-Merida – ST
5) Domenico Pozzovivo (ITA) – Ag2r-La Mondiale
6) Tom Dumoulin (NED) – Team Sunweb
7) Nairo Quintana (COL) – Movistar
8) Bauke Mollema (NED) – Trek-Segafredo
9) Andrey Amador (CRC) – Movistar
10) Tejay van Garderen (USA) – BMC Racing