Durant sa carrière, il est notamment quadruple champion d'Irlande sur route. Il a également remporté deux étapes du Tour d'Espagne (en 2013 et 2015) et a terminé à deux reprises dans le top 10 de cette course (en 2010 et 2013). Au total, il a pris le départ de 24 grands tours et en a terminé 22. Entre 2006 et 2021, il représente l'Irlande à quatre reprises aux Jeux olympiques et à onze reprises aux mondiaux sur route. Après sa carrière de coureur, il devient directeur sportif de la sélection irlandaise.
Nicolas Roche passe son enfance entre la France et l'Irlande. Il habite près de Paris de six à onze ans, puis réside à Dublin de 1996 à 1999[2]. Il y étudie au Lycée français d'Irlande à Foxrock pendant deux ans, puis au Blackrock College(en) pendant un an[2]. Il fait ses débuts en cyclisme, à l'âge de 12 ou 13 ans[3]. Il prend sa première licence au Orwell Wheelers[4], club dont son père a été membre[3]. Il pratique également le football au Park Celtic Football Club, puis le rugby lorsqu'il intègre le Blackrock College[2].
De retour dans le sud de la France en 1999, il s'inscrit à l'Olympique cyclo-club d'Antibes et y reste trois saisons[3]. En catégorie junior, il est sélectionné en équipe d'Irlande et dispute son premier championnat du monde, à Lisbonne en 2001. Victime d'une chute qui casse son vélo, il ne termine pas la course[3]. En 2002, il rejoint l'OCCV Draguignan. Il remporte neuf victoires, dont le Tour d'Irlande juniors, où il porte le maillot de leader de bout en bout[3]. Il prend la 88e place du championnat du monde junior à Zolder. Membre du Sprinter Club de Nice en début d'année 2003, il quitte ce club en avril à cause du « peu d'intérêt des épreuves proposées » et est engagé par le Vélo-Club La Pomme Marseille[3]. Il ne pratique alors plus que le cyclisme[3].
Après avoir participé aux championnats de France en catégories cadet et junior, il dispute le championnat d'Irlande élite en 2004, et en prend la troisième place derrière les professionnels David O'Loughlin et David McCann[5].
2005-2006 : débuts professionnels chez Cofidis
Nicolas Roche débute sur le circuit professionnel en août 2004, en tant que stagiaire au sein de l’équipe Cofidis. À la suite de bonnes performances - il est notamment membre de l'échappée qui se joue la victoire au Grand Prix d'Isbergues - il signe l’hiver suivant son premier contrat professionnel. En début d'année 2005, il opte pour la nationalité française, après avoir été informé à tort qu'il ne pourrait conserver une double nationalité. Il revient sur ce choix quelques mois plus tard, retrouvant la double nationalité franco-irlandaise, et une licence cycliste irlandaise[6].
Pour ces deux premières saisons de découverte, Nicolas Roche a souvent un rôle d’équipier pour ses leaders. Il parvient tout de même à se signaler en obtenant quelques places d’honneur sur des épreuves de Coupe de France, et en remportant sa première victoire professionnelle lors de la 4e étape du Tour de l'Avenir 2006 se terminant à Metz, lui permettant de vêtir le maillot jaune, qu'il conserve pendant 2 jours.
Nicolas Roche rejoint ensuite pour deux ans l’équipe Crédit agricole.
Lors de sa première saison dans l'équipe de Roger Legeay, il participe à son premier Grand Tour avec une participation au Tour d'Italie. Il termine ce Giro à une 123e place à Milan. En juin, il devient pour la première fois champion d'Irlande contre-la-montre.
Au cours de la Grande Boucle, il contribue à défendre pendant plus d'une semaine le maillot jaune de son coéquipier Rinaldo Nocentini, se mêle régulièrement aux arrivées au sprint lors des étapes accidentées, et se distingue en troisième semaine par plusieurs échappées. Il termine 6e du classement par points, et premier coureur non-catalogué comme sprinter dans ce classement.
Il confirme ainsi les espoirs que place en lui son directeur sportif Vincent Lavenu, qui lui propose une prolongation de contrat d'un an, et le considère désormais comme l'un des leaders de sa formation.
Lors de la saison 2010, il est le coureur protégé de sa formation sur de nombreuses courses par étapes, et se classe 10e de Paris-Nice, 5e du Tour de Catalogne, 14e du Tour de France et enfin 6e du Tour d'Espagne, récoltant de précieux points UCI pour son équipe, et contribuant grandement à son intégration au nouveau circuit UCI World Tour la saison suivante. Il signe une nouvelle prolongation de contrat jusqu'à la fin de la saison 2012.
En 2011, il est un peu moins régulier et termine respectivement 26e et 16e des Tours de France et d'Espagne, ses 2 objectifs principaux de la saison. Il remporte néanmoins sa première victoire au niveau World Tour en fin de saison, lors de la 3e étape du Tour de Pékin en battant au sprint son compagnon d'échappée, compatriote, ancien coéquipier au Vélo-Club La Pomme Marseille et ami de longue date Philip Deignan.
Il se présente en 2012 avec sensiblement les mêmes objectifs, et termine cette fois 12e des Tours de France et d'Espagne. Il se classe entre autres 20e de Paris-Nice, 19e du Tour de Californie et 10e du Tour de Suisse, et participe également à ses seconds Jeux Olympiques.
Avec pour coéquipiers des coureurs reconnus comme Alberto Contador, Roman Kreuziger, Michael Rogers ou encore Rafal Majka, le rôle de Nicolas Roche dans sa nouvelle formation est le plus souvent celui d'un équipier, mais qui a parfois l'opportunité de jouer sa carte personnelle.
Dans le final de la 2e étape, il s'isole en tête en compagnie de Leopold König, Domenico Pozzovivo et Daniel Moreno, et attaque en puncheur dans les derniers hectomètres pour remporter sa première victoire d'étape dans un grand tour. A l'issue de la 8e étape, il récupère le maillot rouge de leader du classement général, qu'il perd au profit de Daniel Moreno pour 1 seconde le lendemain. Longtemps dans la course au podium, il termine finalement cinquième de cette Vuelta, après en avoir porté les 4 maillots distinctifs.
En 2014, il est avec Rafał Majka co-leader de l'équipe au Tour d'Italie, qui part de Belfast en Irlande[9]. Lors de la sixième étape, il est impliqué dans une chute au bas de la montée finale. Il passe la ligne d'arrivée avec un quart d'heure de retard sur le vainqueur et doit renoncer à bien figurer au classement général[10]. Il figure ensuite dans plusieurs échappées, lui permettant de prendre une 4e place d'étape à Oropa et une 5e place au Monte Zoncolan. Il termine ce Giro à la 30e place.
Fin juin, il remporte sa première course par étapes, la Route du Sud, au cours de laquelle il gagne en solitaire l'étape reine arrivant à Val Louron. Il succède ainsi au palmarès de l'épreuve à son père et à son cousin Daniel Martin, respectivement victorieux en 1985 et en 2008.
Au Tour de France, il est au service d'Alberto Contador. Celui-ci, blessé par une chute, abandonne lors de la 10e étape. L'objectif de l'équipe Tinkoff-Saxo pour le reste de la course est alors de remporter une étape. Roche se montre donc offensif les jours suivants. Lors de la onzième étape, entre Besançon et Oyonnax, il reçoit le prix de la combativité[11]. Il est également échappé durant la 17e étape et aide Rafał Majka à gagner à Saint-Lary-Soulan.
Apres avoir rempli son rôle d'équipier pour Chris Froome lors de sa victoire au Tour de France, Roche est aligné sur le Tour d'Espagne où il a davantage de liberté. Il est 4e du classement général jusqu'a la difficile 11e étape en Andorre, au cours de laquelle il perd beaucoup de temps. Il remporte en troisième semaine la 18e étape, battant au sprint son compagnon d'échappée Haimar Zubeldia.
Il abandonne le Tour d'Italie 2018 lors de la 15e étape. C'est son premier abandon sur un grand tour en 19 participations[14]. En août, il termine cinquième de l'Arctic Race of Norway[15].
2019-2021 : fin de carrière chez Sunweb/DSM
À la suite de la cessation d'activité de l'équipe BMC (rachetée par CCC, le fabricant est toujours présent dans le peloton professionnel chez Dimension Data), Roche a trouvé refuge chez Sunweb où il pourra épauler, sinon suppléer, entre autres, le champion hollandais Tom Dumoulin.
Lors de la 2e étape de la Vuelta, il s'échappe dans le final en compagnie de plusieurs favoris, notamment Fabio Aru, Nairo Quintana et Primož Roglič, et s'empare du maillot rouge de leader. Il cède sa tunique au soir de la 5e étape, avant de devoir abandonner le lendemain, victime d'une chute collective.
En 2022, il est nommé directeur sportif de la sélection irlandaise sur route. Il s'occupe des sélections élites, espoirs et juniors[18]. Il participe à plusieurs épreuves du nouveau circuit UCI de gravel, obtenant sa sélection pour la 1re édition des championnats du monde de la spécialité, qu'il termine 47e.
2019 : abandon (6e étape), maillot rouge pendant 3 jours
Classements mondiaux
Jusqu'en 2004, le classement UCI concerne tous les coureurs ayant obtenu des points lors de courses du calendrier international de l'Union cycliste internationale (324 courses en 2004). En 2005, l'UCI ProTour et les circuits continentaux sont créés, ayant chacun leur classement. De 2005 à 2008, le classement de l'UCI ProTour classe les coureurs membres d'équipes ProTour en fonction des points qu'ils ont obtenus lors des courses du calendrier UCI ProTour, soit 28 courses en 2005, 27 en 2006, 26 en 2007. En 2008, le calendrier du ProTour est réduit à 15 courses en raison du conflit entre l'UCI et les organisateurs de plusieurs courses majeures. Les trois grands tours, Paris-Roubaix, la Flèche wallonne, Liège-Bastogne-Liège, le Tour de Lombardie, Tirreno-Adriatico et Paris-Nice ne sont donc pas pris en compte dans le classement ProTour 2008. En 2009 et 2010, un « classement mondial UCI » remplace le classement ProTour. Il prend en compte les points inscrits lors des courses ProTour et des courses qui n'en font plus partie, regroupées dans un « calendrier historique », soit au total 24 courses en 2009 et 26 en 2010. Ce nouveau classement prend en compte les coureurs des équipes continentales professionnelles. En 2011, l'UCI ProTour devient l'UCI World Tour et reprend dans son calendrier les courses qui l'avaient quitté en 2008. Il comprend 27 courses en 2011.
Nicolas Roche apparaît pour la première fois au classement UCI en 2004. Il obtient son meilleur classement en 2010 : 32e du classement mondial.