O'Farrell started his playing career with Cork United, but followed his former Cork teammate, Tommy Moroney to West Ham United in January 1948. A wing-half, O'Farrell took some time to establish himself at Upton Park, finally making his debut for West Ham on 28 September 1950 in a 2–0 defeat of Colchester United in the Essex Professional Cup. His debut followed in November 1950 in a 4–1 defeat away to Notts County. He made 18 league appearances in his first season but became a regular in the and seasons. He played for West Ham in seven seasons and in November 1956, he left for Preston North End in a straight swap deal involving . He was still with the Lancashire club when they finished runners-up to Wolverhampton Wanderers in Division One at the end of the season. In the same season O'Farrell's former teammates at West Ham finished as Second Division Champions, securing their promotion to , which he had strived to help achieve.
He retired as a player in 1961 due to injury and in May 1961 became player-manager at team Weymouth. In May 1965 he became manager of Torquay United, replacing Eric Webber. He took the Gulls to promotion in his first season in charge and followed this with sixth- and seventh-place finishes in Division Three in the following two seasons. While Torquay manager he returned to West Ham to sign three players, , and Bill Kitchener. In December 1968, he took over Leicester City. Although Leicester were relegated from the First Division at the end of the season, O'Farrell led them to the FA Cup final, which they lost 1–0 to Manchester City at Wembley.
In June 1971, after leading Leicester to promotion and the , he took over at Manchester United, but would only last 18 months in the post. His arrival came just three years after United had won the European Cup, but the side had posted eighth-place finishes in the First Division in the previous two seasons before O'Farrell's arrival. A seven-match losing run in the league starting on 1 January 1972, as well as O'Farrell's impersonal approach whereby every player had to schedule an appointment just to see him, did not help morale. Once again, United ended the season in eighth place. After United lost 5–0 to Crystal Palace on 16 December 1972 with scoring twice, O'Farrell was sacked after 18 months in the role. He was replaced at Old Trafford by Tommy Docherty.
Cardiff and Iran
He became manager of Cardiff City in November 1973, but in April 1974 quit to take the manager's post with the and lead them to the 1976 Asian Cup. In November 1976, he returned to Torquay United as manager, moving to a position as general manager when was appointed as manager in March 1977. He became Torquay manager again in June 1981, once again becoming general manager, this time in June 1982 on the appointment of Bruce Rioch. He worked as general manager until 1983, when he retired from football and continued living in Torquay. In January 2006, O'Farrell was invited to Iran to attend a ceremony in honour of Persepolis F.C. former players, along with , working in Iran.