Viviani signed for on 24 October 2014 after considering offers from and the. He chose Team Sky because they were willing to help tailor his road programme to help with his track ambitions at the 2016 Summer Olympics in Rio de Janeiro. After winning Stage 2 of the Dubai Tour, Viviani headed to the Track World Championships in Yvelines winning two medals including bronze in his focused Olympic event, the omnium. Back on the road Viviani made a big leap forward, consistently winning at World Tour level winning stages at the Tour de Romandie, the Eneco Tour and winning his first Grand Tour stage at the Giro d'Italia on stage 2 into Genoa. He ended the season well, becoming the European Track Champion in the omnium, gaining Olympic qualification points in the process. He also won three stages at the Tour of Britain and finished where he started the season, winning in the Middle East, this time at the Abu Dhabi Tour.
Viviani signed for the team before the 2018 season, replacing Marcel Kittel who joined. He got off to a good start winning Stage 3 of the Tour Down Under, the 50th victory since his professional début in 2010. He continued the momentum in the Middle East where he won his first major overall title and two stage wins at the Dubai Tour as well as a stage in the Abu Dhabi Tour. He returned to Europe for his first big objective of the season where he came 19th at Milan–San Remo. He added another success in Belgium at the Three Days of Bruges–De Panne but suffered an emotional defeat at Gent–Wevelgem, finishing in second place behind Peter Sagan. He also won the Italian National Road Race Championships.
2019 season
He again got off to a good start in Australia winning the opening stage of the Tour Down Under, and followed it up with the One-day classicCadel Evans Great Ocean Road Race, going one better than the previous year. Viviani's next win came at the UAE Tour a month later as he had an easier build up to the two Grand Tours he was scheduled to compete in – the Giro d'Italia and the Tour de France. After winning Stage 3 of Tirreno–Adriatico, he encountered a dry spell mainly due to bad luck at the Giro d'Italia, where he was disqualified after winning a sprint on Stage 3 into Orbetello, after he was adjudged to have illegally blocked 's Matteo Moschetti. After last year's success, he failed to win a single stage in his home tour while wearing the national champion's jersey. In his build up to the Tour de France he won two sprints in a row at the Tour de Suisse, before going onto win his first stage at the Tour de France into Nancy. Viviani came out of the Tour on top form, winning the London–Surrey Classic. After losing his national champion's jersey in June, he earned the right to wear a non standard team kit again for the following year after he won the European Championships on 11 August in Alkmaar. He won from a three man break following the attack from trade teammate Yves Lampaert, and beating him and Pascal Ackermann in the sprint.
Cofidis (2020–)
In August 2019, Viviani was announced to be joining for the 2020 season along with his lead-out man Fabio Sabatini.