Geoghegan Hart vinder i underholdende affære foran Nibali