Giacomo Nizzolo (Trek-Segafredo) thought he had finally secured his first Grand Tour stage win after near 30 top-10 placings, but was relegated due to an irregular sprint with the win awarded to second place Nikia Arndt (Giant-Alpecin). Nizzolo still secured the red points jersey for a second year in a row.
Nibali only had to finish the race to secure victory, after GC times were neutralised on the 8km finishing circuit with crashes taking place on the wet roads, including seventh place overall Rigoberto Uran (Cannondale) and runner-up Esteban Chaves (Orica-GreenEdge). Both were able to continue.
Unusually for the traditional processional affair of the final stage, at least three riders were forced to abandon so close to the end; Lars Bak (Lotto-Soudal) had to climb off after a crash in the very early part of the day, while Jasha Sütterlin (Movistar) and Johann Van Zyl (Dimension Data) also succumbed to injury having been caught in the crash with Uran.
The day's key break of LottoNL-Jumbo pair Maarten Tjallingii and Jos van Emden got away with around 65km to go on the stage as the peloton continued to relax and built a minute gap which only started to deteriorate in the final 20km.
Both Lampre-Merida and Trek-Segafredo were the most active on the front of the peloton, hoping to setup their respective sprinters Sacha Modolo and red jersey wearer Nizzolo.
But it was sixth place Bob Jungels who put paid to their efforts after his turn on the front for Etixx-Quick Step teammate Matteo Trentin, with Tjallingii being caught and van Emden attempting to go solo, but he was caught with almost 7km to go.
There was more drama straight after he was caught, as Sonny Colbrelli (Bardiani-CSF) crashes after appearing to clip the foot of a spectator as he attacked on the short climb of the course.
Eventually the sprinters worked their way into a reduced group at the front of the race after the GC riders dropped off.
It was a scrappy affair, with several riders attempting to break off the front on the wet and broken roads of the final corners.
But as they took the gentle right hand curve round to get the finish line in sight, Nizzolo launched his sprint and it was unmatched, with the Italian able to roll across the line with his arms aloft as Arndt finished second.
That celebration didn't last long though, as there was some controversy with protestations from Modolo behind, with the race jury checking whether Nizzolo moved off his sprinting line across his fellow Italian on the left side of the road.
While podium celebrations began in earnest, the news was announced that Nizzolo would not win the stage and was relegated by the race jury.
As the chaotic sprint unfolded, Nibali then rolled in with third place Alejandro Valverde (Movistar) just behind and Chaves finishing shortly after among his Orica teammates, bringing an end to the 99th Giro d'Italia.
2016 Giro d'Italia stage 21, Cuneo - Torino (163km)
1. Nikias Arndt (Ger) Giant-Alpecin, in 3-48-14
2. Matteo Trentin (Ita) Etixx-Quick Step
3. Sacha Modolo (Ita) Lampre-Merida
4. Alexander Porsev (Rus) Katusha
5. Sean De Bie (Bel) Lotto-Soudal
6. Ivan Savitskiy (Rus) Gazprom-RusVelo
7. Rick Zabel (Ger) BMC
8. Eduard Michael Grosu (Rom) Nippo-Vini Fantini
9. Jay McCarthy (Aus) Tinkoff
10. Alberto Bettiol (Ita) Cannondale, all same time
Final overall classification
1. Vincenzo Nibali (Ita) Astana, at 86-32-49
2. Esteban Chaves (Col) Orica-GreenEdge, at 52s
3. Alejandro Valverde (Esp) Movistar, at 1-17
4. Steven Kruijswijk (Ned) LottoNL-Jumbo, at 1-50
5. Rafal Majka (Pol) Tinkoff, at 4-37
6. Bob Jungels (Lux) Etixx-Quick Step, at 8-31
7. Rigoberto Uran (Col) Cannondale, at 11-47
8. Andrey Amador (CRC) Movistar, at 13-21
9. Darmin Atapuma (Col) BMC, at 14-09
10. Kanstantsin Siutsou (Blr), at 16-20
King of the mountains classification
Mikel Nieve (Esp) Team Sky
Giacomo Nizzolo (Ita) Trek-Segafredo
Young rider classification
Bob Jungels (Lux) Etixx-Quick Step
Trofeo Fast Team
Trofeo Super Team
Thank you for reading 5 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