Son of Robert who played for Shelbourne, O'Neill made his League of Ireland debut for Shamrock Rovers at Milltown on Sunday the 28th of December 1975 in a 1–0 win over Cork Hibernians. In his second season under Sean Thomas he won his first medal, the FAI League Cup. After the departure of Thomas, Johnny Giles took over as manager at the start of the 1977–78 season. He played for the Republic of Ireland national football team amateur team that qualified and reached the semi finals of the 1978 UEFA Amateur Cup. On 8 March 1978 at Dalymount Park O'Neill played in the first ever Republic of Ireland U21 game and went on to win 2 caps in total. He also won an amateur cap and was called up 8 times for the Republic of Ireland side. O'Neill picked up his second medal when Rovers ended a nine-year barren spell in the FAI Cup with their 21st triumph in 1978. O'Neill saved a penalty in the 1982 FAI League Cup final but The Hoops lost 1–0 to Athlone Town. His first taste of European competition didn't come until 1982 where, like his league debut, he kept a clean sheet on his European bow. Playing in the 1982-83 UEFA Cup games made up for the disappointment of missing out on the UEFA Cup Winners' Cup games four years previously through serious injury picked up on a pre season tour of Spain in August 1978. He represented the League of Ireland XI representative side twice in 1979 and 1980 and was called into the Republic of Ireland national football team as cover in October 1979. Jim McLaughlin was appointed Rovers manager in June 1983 but due to a misunderstanding that developed between them O'Neill signed for UCD. This came as a huge shock to Rovers fans and he got a tremendous reception when Rovers played UCD in the FAI Cup Final in 1984. UCD won the Cup after a replay and O'Neill was Man of the Match in both games despite being hampered by an ankle injury. He kept another clean sheet when UCD played Everton in the 1984–85 European Cup Winners' Cup that autumn, a trophy the English club went on to win. In June 1985 he signed for Dundalk F.C. In eight seasons he won all domestic honours. He was everpresent for 4 seasons from 1987 to 1991 and kept 105 clean sheets in 233 league games making a total of 327 appearances. In a 1987–88 European Cup Winners' Cup game against defending holders AFC Ajax he saved a penalty from Ronald Spelbos. O'Neill signed back for Rovers in the summer of 1993 and subsequently won another League title that season under Ray Treacy keeping fifteen clean sheets in thirty two games. O'Neill kept his 200th clean sheet in a 1–0 win over Sligo in the RDS Arenain September 1994. He made his 500th League of Ireland appearance at Galway United in September 1995 in a season where he ended up with the Player of the Year award. In total he played 6 times in European competition for the Hoops keeping 2 clean sheets and is the only Rovers player to ever win all three domestic trophies the League of Ireland, the FAI Cup and the League of Ireland Cup. O'Neill kept 54 clean sheets in his first spell at the Hoops and 34 in his second spell.
Management career
After Treacy was sacked in January 1996 O'Neill, along with Terry Eviston, was appointed manager. After losing the first game of the 1996/97 the Rovers faithful were stunned when O'Neill and Terry were sacked. O'Neill then signed for Sligo Rovers F.C keeping a clean sheet on his debut on 5 October 1996. His final League of Ireland game was at Finn Park in April 1997. O'Neill stepped in to manage Rovers for the playoff games with Dublin City at the end of the 2005 season. In 2006 O'Neill became a Shamrock Rovers legend. He is the only Rovers player to ever win all three domestic trophies the League of Ireland, the FAI Cup and the League of Ireland Cup. He is now the goalkeeping coach for the Republic of Ireland under-21 national football team. O'Neill has four children. His younger brother Dermot O'Neill also played in the League of Ireland as a goalkeeper.