Formed at Porto, where he was mainly loaned out, he spent most of his career in Turkey, making 227 Süper Lig appearances and scoring 26 goals for Kasımpaşa and Göztepe.
[4] Castro made his first-team – and Primeira Liga – debut on 2 February 2008, coming on as a substitute for Paulo Assunção for the last 11 minutes of a 4–0 home win against U.D.
[3] In the following two years, Castro played with S.C. Olhanense on loan,[6] helping the Algarve side returned to the top division after an absence of more than 30 years in his debut campaign[7][8] and winning several Best Young Player monthly awards during his second,[3] where he scored six goals in 28 games as his team retained their status.
Castro returned to Porto for 2010–11, but was soon deemed surplus to requirements by new manager André Villas-Boas as practically all Portuguese players.
[10] Castro managed to feature regularly for the Asturians during his spell, starting 11 times and scoring against RCD Mallorca (4–0, away)[11] and Getafe CF (2–0 at home),[12] in an eventual escape from relegation.
[21] On 3 October 2023, Castro scored his first UEFA Champions League goal, coming off the bench in the 86th minute and closing the 3–2 away win over 1.