Fernando Gaviria claimed his first Grand Tour stage victory as what looked like being the most straightforward day of the 100th Giro d'Italia blew apart in howling winds in Sardinia.

Colombian Gaviria took the stage win and the race leader's pink jersey after his QuickStep-Floors team led the decisive break when echelons split through the peloton on the final approach to Cagliari.

A bunch sprint had been expected at the end of the short, flat 148-kilometre stage from Tortoli, but the peloton was buffeted by winds reaching 40km per hour in the final 30km.

As the road changed direction several times, the winds turned from crosswinds to headwinds again and again, splitting the pack apart and meaning only four riders crossed the line on the same time as Gaviria.

Lotto-Soudal's Andre Greipel, who took pink with victory on Saturday, finished 10th, 13 seconds behind at the front of the main chasing pack.

Gaviria now leads overall by nine seconds from the German, with stage one winner Sam Bennett's Bora-Hansgrohe team-mate Lukas Postlberger third, 13 seconds back and on the same time as QuickStep's general classification hopeful Bob Jungels, who put in a huge turn to guide Gaviria towards the line.

Bennett, feeling below-par the last two days, finished in 168th while Team Sky's Philip Deignan came in 90th.

Team Sky's Geraint Thomas fought gamely to join the QuickStep-led escape before dropping back, but he finished with the main contenders to sit 11th overall, 23 seconds down on Gaviria.

All of the principal contenders for pink managed to stay with that group to keep them bunched together in the standings ahead of Monday's rest day and Tuesday's ascent of Mount Etna - which could bring the general classification battle to life.

Giro d'Italia general classification after stage 3: 1 Fernando Gaviria (Colombia / Quick-Step) 14:45:16" 2 Andre Greipel (Germany / Lotto) +9" 3 Lukas Poestlberger (Austria / BORA) +13"  Bob Jungels (Luxembourg / Quick-Step) 5 Kanstantsin Siutsou (Belarus / Bahrain) 6 Caleb Ewan (Australia / Orica) +17" 7 Roberto Ferrari (Italy / UAE Team Emirates) 8 Ryan Gibbons (South Africa / Dimension Data) +23" Enrico Battaglin (Italy / LottoNL) 10 Sacha Modolo (Italy / UAE Team Emirates) 11 Geraint Thomas (Britain / Team Sky) 12 Vincenzo Nibali (Italy / Bahrain) 13 Adam Yates (Britain / Orica) 14 Domenico Pozzovivo (Italy / AG2R) 15 Rui Costa (Portugal / UAE Team Emirates) 16 Diego Rosa (Italy / Team Sky) 17 Nairo Quintana (Colombia / Movistar) 18 Kristijan Koren (Slovenia / Cannondale) 19 Tom Dumoulin (Netherlands / Sunweb) 20 Luis Leon Sanchez (Spain / Astana)  

118 Philip Deignan (Irl / Team Sky) 191 Sam Bennett (Irl / Bora-Hansgrohe)