Roche turned professional in 2004, coming third in the Irish national road race championship at the age of 19, before chalking up his first win as a pro at the 2006 Tour de l’Avenir and impressing from the breakaway at that year’s World Championships in Salzburg. Off the back of those performances, Roche signed with Credit-Agricole for 2007, finishing 122nd at the Giro in his first Grand Tour, winning the Irish national time trial championship the same year. The Irishman finished a remarkable 13th in his second Grand Tour, the 2008 Vuelta a Espana, just 1:45 off the top ten.
He moved to Ag2r-La Mondiale the following year, winning the Irish national championship road race before making his debut at the Tour de France, where he finished a solid 23th on GC. Roche had a string of impressive results in 2010, finishing tenth in Paris-Nice, fifth in the Volta a Catalunya in preperation for the Tour de France, coming 15th, and the Vuelta a Espana, where he finished sixth, after second-placed Ezequiel Mosquera’s result was annulled.
Despite early season injuries, Roche finished 26th at the Tour and 16th at the Vuelta in 2011, further establishing himself as one of the top GC riders on the World Tour.
Roche left Tinkoff-Saxo for Team Sky after the 2014 season and soon became an integral part of the British team’s Grand Tour challenge, finishing as Sky’s third highest-placed rider (35th) as Froome won his second Tour de France and finishing 26th overall during Froome’s abortive attempt at a Tour-Vuelta double, taking stage 18 in the process.
Roche left Sky (now Team Ineos) to race for BMC Racing in 2017, staying on into the 2018 season when he raced the Vuelta a España as part of the winning stage one TTT team.
Then for 2019 season, he signed with Team Sunweb. Roche took the red jersey on stage 2 of the Vuelta and held it until stage 5. Unfortunately, he had to abandon due to a crash the following day. He has since extended his contract with Team Sunweb, where he is a valuable domestique and can ride in support of GC ambitions.