Born in Barreiro, Setúbal, Ferreira joined Sporting CP's youth system in 2002, aged 13. On 6 January 2005, it was reported that the Lisbon club had made a complaint to FIFA regarding him and two other players who had trained with Chelsea without any authorisation. However, in the summer, he still made a move to the English club. In the following season, Ferreira became a professional and signed a contract with the Blues. During 2007–08 he made 12 appearances for the reserves, scoring eight goals. On 20 January 2009, Ferreira was loaned out to League One side Oldham Athletic on a one-month loan deal, before it was extended for another month on 23 March. The day after the loan extension, he made his professional debut in a 1–1 draw against Cheltenham Town at Whaddon Road, coming on as a substitute for Deane Smalley in the 66th minute: a few minutes after coming onto the pitch he nearly scored, putting a header wide of the goal. Released by Chelsea in summer 2009, Ferreira went on trial with League Two team Gillingham, but nothing came of it. He resumed his career in the Portuguese third division.
Adelaide United
In February 2012, Ferreira signed for Dulwich Hill FC in Australia. He scored twice on his National Premier Leagues NSW 2 debut, on 24 March. After becoming one of his team's key players, Ferreira went on trial with A-League club Adelaide United FC, being subsequently offered a contract. On 6 August 2012 it was announced that he would sign, and he penned a one-year contract late into that month. Ferreira scored his debut league goal on 23 November 2012, a 2–1 away victory over Sydney FC – he opened the scoring in the 20th minute with a sharp drive into the left corner of the net, shooting from the right-hand corner of the box. Two weeks later, he assisted the first goal and netted his team's second in a 4–2 rivalry derby win against Melbourne Victory FC at Hindmarsh Stadium. On 14 December 2012, Ferreira signed a two-year extension with Adelaide United.
On 27 January 2015, Adelaide United announced that it had agreed to terminate Ferreira's contract effective immediately. The very same day, he joined fellow league club Central Coast Mariners FC for two-and-a-half years. He made his debut for the latter on 13 February, starting in a 0–2 home loss to Brisbane Roar FC, and scored his first goal a week later against Sydney, helping the team come from a goal behind to lead but in an eventual 2–4 loss at the Sydney Football Stadium. He ended his first season in Gosford with three goals from nine games, the other being on 7 March when he finished Isaka Cernak's free kick for the only goal at home against Melbourne City FC. Ferreira scored twice in Central Coast's first game of the 2015–16 campaign, inspiring them to a 3–2 home win over Perth Glory FC on 10 October. On 21 February, he was sent off in a 1–4 loss at Melbourne City. In April 2017, it was announced that Ferreira was leaving the Mariners to sign with a club in Malaysia.
Sydney FC
Following a trial, Ferreira signed a short-term deal with Sydney FC on 2 February 2018. At the end of the season, being considered surplus to requirements, he was not offered an extension.
Perth Glory
On 10 July 2018, Ferreira joined Perth Glory. In March 2019, he applied for Australian citizenship to play as a local in the A-League.