A full international since 2005, he has represented Ecuador at the Copa América in 2007 and 2011, as well as at the 2014 World Cup. Caicedo is also Ecuador's fifth highest goalscorer of all-time with 23 goals to his name.
Caicedo was signed by Swiss Super League side FC Basel from Rocafuerte in his native Ecuador during the Swiss 2005–06 season for an undisclosed fee while he was just 17 years old. Due to his youth, he was trained in the minor divisions. He went on to play 20 games for Basel in the following 2006–07 season, accompanied by three Swiss League goals. Clubs from La Liga, Premier League, and Serie A were monitoring his progress, with Milan said to have made an inquiry in the winter of 2007.
On 31 January 2008, it was announced that Manchester City had secured Caicedo's services on a four-and-a-half year deal through a £5.2 million transfer fee (€7 million), which would make his sale one of the highest transfers in the history of the Swiss League. His transfer to Manchester City was completed after Caicedo was granted a work permit. Caicedo was described by his manager as "one of the great South American talents" and was also compared to the Brazilian Adriano. He made his debut on 10 February 2008, in a 2–1 away win against rivals Manchester United, coming on in the second half. He ended the season with 10 appearances in the Premier League, all of them coming on as a substitute.
Caicedo scored his first goal for City the following season in a UEFA Cup game against Racing de Santander. He scored his second consecutive goal with a back heel in a league game against West Bromwich Albion, but the goal was initially ruled as an own goal, as it hit the post and then the goalkeeper before finally going in. The goal was later given back to Caicedo after reconsideration from the Dubious Goals Committee. After these solid performances, both coming off the bench, club manager Mark Hughes gave him the opportunity to start his first game in the league and he went on to score for the third game in a row, this time scoring the first two goals against Hull City on 26 December 2008, in a 5–1 victory, taking his goal tally up to four. He started against Blackburn Rovers on 28 December 2008. Caicedo opened the scoring in the first leg of the UEFA Cup last 16 tie with Aalborg BK at the City of Manchester Stadium. Manchester City won the game 2–0. Caicedo scored his sixth goal of the season for Manchester City against Hamburger SV on 16 April 2009, but City were eliminated from the cup 4–3 on aggregate. Caicedo impressed many Manchester City fans that season with his strong performances as a single striker with the ability to hold up the ball in key areas and shrug off defenders. Caicedo's seventh City goal came in City's 3–1 home win over Blackburn Rovers on 2 May. Caicedo scored his eighth goal for Manchester City in the 1–0 win over Bolton Wanderers on the last day of the season at the City of Manchester Stadium.
At the start of the 2009–10 season, Caicedo was tipped to leave City in order to get more playing time, especially after the club signed fellow forwards Roque Santa Cruz, Emmanuel Adebayor, and Carlos Tevez. So, on 23 July 2009, Sporting Clube de Portugal and Manchester City reached a one-year loan deal with option of a permanent deal, that would allow him to be part of their squad for the 2009–10 UEFA Champions League, potentially allowing Caicedo a year to develop himself as a forward before returning to Manchester City. Caicedo made his debut for Sporting CP shirt after coming on as a substitute for Hélder Postiga injured on a 36th minutes in a 2–1 loss against Braga on 22 August 2009. After suffering a Stretched Ligament injury in a match against Braga which he was out of action for 3 weeks, Caicedo made his return for Sporting CP when he provided assist for Simon Vukčević to score a winning goal in a 1–1 draw against S.C. Olhanense on 21 September 2009. Caicedo, however, found it difficult at Sporting and his loan deal was cut short in January 2010.
After Sporting decided to end Caicedo's loan spell at the club, other clubs showed interest in the Manchester City striker, Málaga CF and Hull City amongst them. On 8 January 2010, Caicedo decided to join Málaga on loan, rejecting an offer from Hull City.
He scored his first La Liga goal for Málaga with a beautiful individual effort against Racing de Santander, helping Málaga win 3–0 on 14 February 2010. On 10 April 2010, Caicedo scored his first goal in two months which is his second goal in 2–1 loss against Sevilla and 4 days later on 14 April 2010, Caicedo scored again after 4 days of scoring his first goal which is his third goal in a 2–2 draw against Osasuna. On the final matchday of the domestic season, Málaga required a point to stay above the relegation zone, where they faced Real Madrid at home at La Rosaleda. Caicedo started and provided a wonderful assist for Duda to open the scoring in the ninth minute. Real Madrid levelled after the break through Rafael van der Vaart, but the early goal was enough for Málaga to avoid relegation.
Just one hour before the deadline of the Spanish summer transfer window (24:00 CEST), Caicedo completed a loan move to freshly-promoted Levante UD for the 2010–11 season. This revitalized his career, where by December 2010, he had contributed seven goals in 12 appearances; included in these seven goals was a brace scored against Racing de Santander on 21 November 2010. Along with a Christian Stuani strike, Levante went on to win 3–1, picking themselves out of the relegation zone after a miserable four-match losing streak.
Levante lost on 18 December 2010 to Athletic Bilbao by a score of 2–1. Caicedo scored the only goal for the hosts. This was the last game before the winter break and started an abismal five-game losing streak for Levante that left them at the bottom of the Liga table. Levante turned this around on 29 January 2011 when they welcomed Getafe CF. Caicedo added the second goal of a 2–0 win and lifted the relegation strugglers from the bottom of the zone.
On 11 May, Caicedo scored his 13th league goal of a successful campaign against FC Barcelona at the Estadi Ciutat de València. Caicedo finished the ball in fine fashion, after capitalizing on defender Gerard Piqué's error. The game ended in a 1–1 draw, which handed Barcelona their third-straight La Liga title. The crucial point for Levante put them five points above the relegation zone with two games remaining. Caicedo's thirteen league goals helped to secure Levante's place in La Liga for a second season.
The Daily Mail reported that Levante wanted to sign Caicedo permanently for £1 million with him being the top scorer for Levante. On 30 May 2011, Levante officially took up an option to sign him and on 29 June 2011, Levante signed Caicedo for £880,000. In his move, it was revealed that Levante would cash in by selling Caicedo for a large profit in the summer because the club were in debt, owing €12 million ($17 million) a year in repayments. This led to Caicedo quoting: "At €1 million, I am cheap, very cheap. Very, very, very cheap. He is a bargain, but only for Levante."
Following his time in Spain, reports showed that he traveled to Moscow because of interest from Russian Premier League clubs Lokomotiv Moscow and Anzhi Makhachkala.
On 25 July 2011, Caicedo signed a four-year contract with Lokomotiv Moscow for a fee of €7.5 million and was handed the number 25 jersey. Previously, Lokomotiv Moscow tried to sign Caicedo in the Winter Transfer Window at Russia before it closed on 10 March 2011 after Lokomotiv Moscow failed to sign Stuttgart's striker Ciprian Marica. Following his move to Lokomotiv Moscow, the president of Russian club Olga Smorodskaya accused Levante of behaving unprofessionally in the sale and hit out at Levante for their lack of co-operation during negotiations, saying to RIA Novosti :
On 14 August 2011, Caicedo made his debut in the Russian Premier League after coming on at the 61st minute for Dmitri Loskov as Lokomotiv Moscow drew 0–0 against Volga. On 28 August 2011, Caicedo scored his first goal which proved to be thew winning goal against Kuban Krasnodar. After scoring for Lokomotiv Moscow, Caicedo began scoring and providing assists on a weekly basis for 4 weeks including 3 goals. The first of these goals came against FC Zenit Saint Petersburg in a 4–2 win on 10 September 2011, another against Terek Grozny in a 4–0 win, and the third and final of the run against Anzhi, a goal which again proved to be the winning goal. He had provided his one assist of the run a week before, Caicedo playing the ball to Alberto Zapater who scored his first goal for Lokomitiv Moscow in the 1–1 draw against Rubin Kazin on 25 September 2011. In the first half Russian Premier League, Caicedo made 13 league appearance, scoring 6 goals.
In the Europa League, Caicedo made his debut in the Play-off round as Lokomotiv Moscow beat Spartak Trnava 3–1 on aggregate on 25 August 2011. On 20 October 2011, Caicedo scored his first Europa League goal in a 3–1 win over AEK Athens on a Group Stage. On 16 February 2012 in the Round of 32 of the Europa League, Caicedo scored a winning goal on a 71st minutes against Athletic Bilbao in a 2–1 win of the first leg of Round of 32 of the Europa League. Caicedo also provided an assist for Denis Glushakov to score a penalty on a 61st minutes after Caicedo was fouled in the penalty box. In the second leg of Round of 32 of the Europa League, Caicedo played as Lokomotiv Moscow were eliminated from the Europa League after Athletic Bilbao beat Lokomotiv Moscow 1–0, winning on the away goals rule.
In the January transfer window, reports from Brazil and Ecuador claimed that Caicedo was joining Série B side Boa Esporte on loan. However, the move was rejected by Olga Smorodskaya saying that she has no intention in loaning him to Boa and says the offer was "nonsense".
In 2014, Felipe Caicedo joined Al Jazira. Upon the arrival of Mirko Vucinic to Al Jazira, Al Jazira and Caicedo held talks about terminating his contract, making him a Free Agent.
On 15 July 2014, Caicedo signed for La Liga club Espanyol on a Bosman transfer after leaving UAE Arabian Gulf League club Al-Jazira.
On 2 August 2017, Caicedo was signed by Lazio.
On 10 February 2009, Caicedo scored the winning goal in a 3–2 victory against England's U-21 team.
On 21 March 2013, following the words of Agustín Castillo, the coach of El Salvador, that the current Ecuador team is the "best Ecuador of the history", Caicedo scored twice against El Salvador.
In September 2017, Caicedo announced his retirement from the national team after manager Gustavo Quinteros was sacked.
List of goals and results with Ecuador national football team As of 1 May 2016
As of 5 September 2017