En 2012, il dispute en avril les championnats du monde sur piste à Melbourne, en Australie. Il y devient champion du monde du scratch, et obtient la médaille d'argent de la course aux points et de l'américaine, pour laquelle il est associé à Geraint Thomas. Il ne fait en revanche par partie de l'équipe de poursuite par équipes, qui s'impose en battant le record du monde. Il renonce alors à ses espoirs de participation aux Jeux olympiques avec cette équipe et reporte ses ambitions sur la route. Il est sélectionné par Sky pour disputer le Tour d'Italie aux côtés de Mark Cavendish, mais doit y renoncer après s'être blessé à l'épaule en tombant à l'entraînement. Deuxième et troisième d'étape du Tour de Luxembourg et du Tour de Suisse en juin, il se classe quatrième du championnat de Grande-Bretagne sur route, remporté par son coéquipier Ian Stannard. Non-retenu pour le Tour de France qui voit la victoire de Bradley Wiggins, il remporte en juillet deux étapes ainsi que le classement par points du Tour de Pologne. Il n'est pas sélectionné en équipe de Grande-Bretagne pour les Jeux olympiques. Au Tour d'Espagne, il est le sprinter de l'équipe Sky et espère décrocher une première victoire sur un grand tour, tout en étant équiper de Christopher Froome, un des favoris pour la victoire finale. Il est troisième de la deuxième étape, battu au sprint par John Degenkolb et Allan Davis, et deuxième de la dix-huitième étape, derrière Daniele Bennati. Il dispute ensuite la course en ligne des championnats du monde, au service du leader John Tiernan-Locke, révélation britannique de la saison. Celui-ci prend la tandis que Swift est .