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 Football League 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 1951–52 and 1952–53 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 Eddie Lewis. He was still with the Lancashire club when they finished runners-up to Wolverhampton Wanderers in Division One at the end of the 1957–58 season. In the same season O'Farrell's former team-mates at West Ham finished as Second Division Champions, securing their promotion to First Division, 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 Southern League 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, John Bond, Ken Brown and Bill Kitchener.
In December 1968, he took over Leicester City, narrowly winning a vote between himself and then Luton Town manager Allan Brown for the post. Brown was sacked for showing an interest in the post and subsequently replaced O'Farrell at Torquay. 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 Second Division Title, 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's fortunes had taken a decline since then with eighth-place finishes in the First Division in the previous two seasons before O'Farrell's arrival.
The soft-spoken Irishman was never able to get to grips with the worst of George Best's excesses. United started his first season in charge very well and were 10 points clear at one stage at the top.
However, a dismal second half of the season which including a seven-match losing run in the league starting on New Year's Day 1972, and O'Farrell's impersonal approach whereby every player had to schedule an appointment just to see him didn't help morale. Once again, United ended the season in eighth place, but worse was to come over the next two seasons.
In November 1976 he returned to Torquay United as manager, moving to a position as general manager when Mike Green 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.
O'Farrell won the first of nine full international caps for Ireland against Austria in Vienna on 7 May 1952, in a 6–0 defeat. In his next international game, also against Austria, O'Farrell scored the first of his two international goals as Ireland won 4–0 at Dalymount Park, Dublin. His next game saw his second and last international goal, as Ireland lost 5–3 to France in a qualifying game for the 1954 World Cup. He played infrequently over the next six years before making his ninth and last international appearance on 10 May 1959 in a 4–0 defeat by Czechoslovakia at Tehelne Pole Stadion in Bratislava.