He started out playing for Bannow Celtic in Dublin where he soon caught the attention of Belvedere Boys, a well known schoolboy club. He started his senior career in the Bohemians "B" team but with a breakthrough to the first team proving elusive, he moved to Shamrock Rovers making his debut on 14 March 1999 against Derry City. He then returned to Bohemians where he played for just one season (1999-20), gaining an FAI Cup Runners up medal before being snapped up on a free transfer by English Football League One club AFC Bournemouth, where he played 168 league games and scored 24 goals.
In May 2005 he moved on a Bosman transfer to play in the Football League Championship with Burnley where he played regularly during the 2005-06 season, mainly scoring his goals from set-pieces. One of his most memorable goals was a 25 yard free-kick against Wolverhampton Wanderers, in a match which Burnley won 1-0. However, his appearances became less regular during the second half of the season and he spent the 2006-07 season as a little used substitute and squad player. He did though score Burnley's second goal in the 3-2 defeat at Reading after coming on as a substitute. He was placed on the transfer list at the end of that season. On 12 June 2007 O'Connor returned to Bournemouth on trial with the possibility of a season long loan. However, this did not happen and he returned to Burnley. There he found himself frozen out of the first-team squad by Steve Cotterill and not even given a squad number. One of new manager Owen Coyle's first actions in regards his first-team squad was to give O'Connor a first team squad number for the remainder of the 2007-08 season. Nevertheless, O'Connor was released at the end of the season.
On 6 October 2008, O'Connor signed for League Two side Luton Town after a three week trial. Luton boss Mick Harford had been impressed by O'Connor's performances in reserve games, scoring three goals in two games. Rather unfortunately, Garreth never made the impact at Kenilworth Road that had been hoped for, and after just 7 appearances for Luton Town (3 coming in the League), he was released by manager Mick Harford as the January 2008 transfer window opened. With money tight, Harford released both Garreth and fellow midfielder Kevin Watson from their deals, thus freeing up money to bring in some new faces.
On the eve of the 2009 season, O'Connor returned to Dublin and signed for St. Patrick's Athletic after unsuccessful trials with Bohemians and Dundalk.
Garreth scored a memorable goal in the 2-1 defeat to Steaua Bucureşti in the Europa League play-off during St Pats 2009 European campaign .
Agreed a contract with Drogheda along with Glen Fitzpatrick in January 2010 .