Born in Ringaskiddy, County Cork, O'Sullivan played underage football with Hibernians of Shanbally and with Passage West. He came to the attention of John Caulfield when he was the manager of Munster Senior League side Avondale United. O'Sullivan was added to the Cork City roster in 2010 when Tommy Dunne signed him on amateur terms. The club were then playing in the League of Ireland First Division under the title of "Cork City Foras Co-op" following the club's financial issues of 2009. O'Sullivan made two appearances for Cork City that season, and later returned to the Munster Senior League, winning several league titles with Avondale, and three FAI Intermediate Cup medals. He was capped for the Republic of Ireland amateur team, playing in November 2012 against a representative England team.
Cork City
In January 2014, O'Sullivan signed for his former Avondale manager John Caulfield at Cork City.St Patrick's Athletic on 7 March, and scored his first goal three days later in a 4–0 win over Limerick in the League of Ireland Cup. He was awarded the League of Ireland Premier Division Player of the Month for June 2014. He was a member of the Cork City side that were runners-up in the 2014 league competition, with 11 goals in 33 league appearances, and two goals in cup competitions. In 2015, O'Sullivan scored nine goals in 28 league appearances, and played in the FAI Cup Final in which Dundalk defeated Cork 1–0. O'Sullivan was involved in a post-match dispute with teammate Billy Dennehy during the 2015–16 UEFA Europa League qualifying round. The following year he made 27 league appearances, and scored four league goals. He also score five goals in cup competition, and won an FAI Cup winners medal, coming on as a sub in Cork City's win over Dundalk in the 2016 final.
Waterford
In December 2016, O'Sullivan announced his departure from Cork City, and by January it had been confirmed that he had signed for Waterford. He made his debut for Waterford in a 1-0 defeat away to Athlone Town in February, and scored his first goals for the club on 25 March 2017, scoring both goals in a 2–0 win over Wexford. On 15 September O'Sullivan scored twice in a 3-0 win over Wexford. That result coupled with Cobh Ramblers 3-0 defeat to Cabinteely crowned Waterford as First Division champions. O'Sullivan finished the season with 26 appearances and 12 goals to his name.
Limerick
O'Sullivan signed for Limerick in January 2018, making 14 appearances in the league, scoring once. He left Limerick in June 2018.
Avondale United
O'Sullivan returned to Avondale United in July 2018, and scored the winner in the 2019 FAI Intermediate Cup Final, as Avondale beat Crumlin United 1-0.