Castillo's professional career began with
América de Cali in 1994. In 1995, Castillo was loaned to second-division club
Atletico Bucaramanga, and scored 8 goals in 25 appearances, helping his club win the
1995 Categoría Primera B title. He returned to America for the 1996 season having gained more experience and won his first title as a professional, the
1996-97 league championship, and finished
runner-up in the
Copa Libertadores. In
1999, he won the
Copa Merconorte. In the second leg of the Copa Merconorte finals against Santa Fe, Castillo scored the only goal of the game, and then scored his penalty in the shootout to help America lift the trophy. In 2000, he joined
Vélez Sársfield of
Argentina but returned to América de Cali after only one season where he won another Colombian league title in 2002. In 2003, he went back to Argentina to play for
Independiente. In 2005, Castillo had his first spell in Europe in Spain's second division with
Real Valladolid. In 2006, he signed for Millonarios. In 2007, he returned to Europe, this time going to Cyprus and signing for
Limassol. Despite a short six-month spell in Cyprus, he managed to score 4 goals in 5 matches. In 2008, he joined Uruguayan club
Defensor Sporting and scored six goals in 11 matches to help the club win the
2007–08 league title. Castillo returned to Argentina in the second half of 2008 to play for newly promoted
Godoy Cruz. He scored twice on his league debut against
Banfield and then on 28 September 2008 he scored a
hat-trick, helping Godoy Cruz beat
Boca Juniors 4–1. Ironically, his improved form would only cause more heartbreak; being the Argentine club's best player, he suffered a season-ending torn
ACL after a hard tackle in an away match against
Gimnasia on 5 October 2008. In September 2009, after 11 months without playtime, Castillo left Godoy Cruz after his contract with the club expired, and joined
Millonarios. In December 2009 the 32-year-old forward moved back to
Godoy Cruz after six months in Colombia. Castillo left the club at the end of 2010 having scored 11 league goals in 34 appearances and becoming a key player for the club that qualified for the
2011 Copa Libertadores. In January 2011 he joined
Querétaro of
Liga MX. With Queretaro in a relegation fight, and after a 5-0 loss to
Toluca, Castillo and two other players were separated from the squad for indiscipline. A few days later, with transfer rumors about Castillo circulating the media, the club stated, "Castillo is separated from the squad, but we are nowhere close to the cancellation of his contract." The following day, Castillo rejoined Independiente on a one-year contract, but his contract was cut short in June due to poor performance as judged by the club's board. Castillo was loaned back to America for the
2011 Finalizacion. He made 14 appearances and scored seven goals, including back to back winning goals against
Deportes Quindío, and
Independiente Santa Fe. Although Castillo's goals led America to the playoffs, it was not enough to prevent their berth for the relegation playoff against
Patriotas Boyacá. Castillo scored a goal in the second leg, as the match went to penalties after a 2-2 draw on aggregate. Despite scoring during the match, Castillo missed his penalty, and America later lost the shootout and were relegated for the first time in club history. In January 2012, Castillo signed with Argentine second tier club Atletico Tucuman. He had a short spell at the club, leaving in May 2012. In May 2013, Castillo was announced as
Boyacá Chicó's newest signing. He retired at the conclusion of the 2014 Finalizacion having made 34 appearances and scored nine goals with the club. ==International career==