Castillo is een middenvelder die zijn carrière begon bij Club Deportivo Espoli. In 2003 verhuisde hij naar El Nacional waar hij drie seizoenen speelde. In 2006 werd hij opgepikt door Rode Ster Belgrado, waar hij acht goals scoorde in zijn eerste seizoen. Onder meer Juventus FC toonde interesse, maar Rode Ster wilde de middenvelder echter niet laten gaan, waardoor er geen transfer volgde. Belgrado verhuurde hem in seizoen 2008/09 niettemin aan Everton FC en in 2009/10 aan Wolverhampton Wanderers FC. Met Everton stond hij op 30 mei2009 (als bankzitter) in de finale van de strijd om de FA Cup. Daarin verloor de ploeg van trainer-coach David Moyes met 2-1 van Chelsea door goals van Didier Drogba en Frank Lampard.
Castillo speelde zijn eerste interland op 17 augustus2005 tegen Venezuela en werd opgenomen in de selectie voor de kwalificatie voor het WK voetbal 2006. Tijdens dit WK was Castillo een vaste kracht in het basiselftal. Het wereldkampioenschap voetbal 2014 in Brazilië moest Castillo aan zich voorbij laten gaan door een blessure, opgelopen in een oefeninterland tegen Mexico.