O'Farrell played in all grades of hurling with Midleton CBS Secondary School before progressing onto the college's senior team. On 12 March 2006, he scored a goal from full-forward when Midelton CBS defeated St. Flannan's College from Ennis by 2-08 to 0-12 to win the Harty Cup.
Midleton
O'Farrell joined the Midleton club at a young age and played in all grades at juvenile and underage levels. On 20 November 2011, he was at full-forward when Midleton defeated Duhallow by 1-11 to 0-08 to win the Cork Under-21 Championship title for the first time in 22 years. O'Farrell was just 17-years-old when made his senior championship debut on 5 May 2007. He scored 1-01 in a 1-11 to 0-12 defeat of Killeagh in the first round. On 3 November2013, O'Farrell was at right wing-forward when Midleton faced Sarsfields in the final. He scored three points from play and collected a winners' medal after the 2-15 to 2-13 victory. O'Farrell was appointed captain of the Midleton team for the 2018 championship. On 14 October, he led the team to a 4-19 to 1-18 defeat by Imokilly in the final.
Cork
Minor and under-21
O'Farrell first played for Cork as a member of the minor team. He made his first appearance on 2 May 2007 when he scored three points from right wing-forward in Cork's 3-15 to 0-09 defeat of Waterford. On 8 July, O'Farrell was again at right corner-forward for Cork's 0-18 to 1-11 Munster Championship final defeat by Tipperary. On 2 September, he again lined out at right corner-forward in the All-Ireland final against Tipperary. O'Farrell scored a goal in the 3-14 to 2-11 defeat. O'Farrell was also eligible for the minor grade in 2008. On 13 July, he was an unused substitute for Cork's 0-19 to 0-18 Munster Championship final defeat of Tipperary. On 3 June 2009, O'Farrell made his first appearance for the Cork under-21 team. He scored two points from play after being introduced as a 34th-minute substitute for Robert O'Driscoll in a 2-22 to 0-25 defeat by Tipperary in the Munster Championship. On 3 August 2011, O'Farrell, who was in his final year in the under-21 grade, lined out in the Munster Championship final. He scored 1-02 from play in the 4-20 to 1-27 extra-time defeat by Limerick. It was his last game for the Cork under-21 team.
Intermediate
O'Farrell was drafted onto the Cork intermediate team for the 2009 Munster Championship. He made his first appearance on 21 June when he scored 1-03 from full-forward in Cork's 2-15 to 1-14 defeat of Clare. On 22 July, O'Farrell won a Munster Championship medal after scoring three points in Cork's 5-24 to 3-09 defeat of Waterford in the final. On 29 August, he scored 1-02 from full-forward in Cork's 2-23 to 0-16 defeat of Kilkenny in the All-Ireland final.
Senior
O'Farrell made his first appearance for the Cork senior team on 21 March 2010. He was introduced as a half-time substitute in Cork's 3-17 to 2-20 draw with Waterford in the National League. On 2 May, O'Farrell was an unused substitute when Cork suffered a 2-22 to 1-17 defeat by Galway in the National League final. He made his first championship appearance on 17 July when he came on as a 65th-minute substitute for Kieran Murphy in Cork's 1-16 to 1-13 defeat by Waterford in the Munster Championship final replay. On 6 May 2012, O'Farrell lined out in his second National League final. He was held scoreless from right corner-forward in the 3-21 to 0-16 defeat by Kilkenny. O'Farrell lined out in his second Munster Championship final on 14 July 2013. He scored a point from play in Cork's 0-24 to 0-15 defeat by Limerick. On 8 September, O'Farrell lined out at right corner-forward against Clare in the All-Ireland final. He was held scoreless in the 3-16 to 0-25 draw. O'Farrell was again at right corner-forward for the replay on 28 September and was again held scoreless in the 5-16 to 3-16 defeat. On 3 May 2015, O'Farrell was introduced as a substitute for Rob O'Shea in Cork's 1-24 to 0-17 defeat by Waterford in the National League final. O'Farrell won a Munster Championship medal on 9 July2017 after coming on as a substitute for Darragh Fitzgibbon in the 1-25 to 1-20 defeat of Clare in the final.