En 2012, Castroviejo est cinquième du Tour de Murcie, septième du Tour de Castille-et-León. En mai, il obtient sa première victoire avec Movistar en gagnant la première étape du Tour de la communauté de Madrid, un contre-la-montre. Il est convoqué a la course en ligne des Jeux olympiques pour représenter l'Espagne en remplacement de Samuel Sánchez, forfait en raison d'une blessure survenue lors du Tour de France. Il figure dans la bonne échappée avec ses leaders Alejandro Valverde et Luis León Sánchez et termine a la . Il participe également au contre-la-montre aux côtés de Luis León Sánchez et s'y classe neuvième. Il porte le maillot de leader du classement général du Tour d'Espagne à l'issue du contre-la-montre par équipe inaugural, ayant franchi la ligne le premier. Il le perd deux jours plus tard au profit de son coéquipier Alejandro Valverde lors de la troisième étape. Lors des championnats du monde sur route dans le Limbourg néerlandais, Castroviejo est sixième du premier championnat du monde du contre-la-montre par équipes de marques, avec Movistar. Avec l'équipe d'Espagne, il dispute également le contre-la-montre, dont il prend la , et la course en ligne, où Valverde est médaillé de bronze.