Murphy has refereed in the All-Ireland League, the British and Irish Cup and the Pro12 at club level. At international level, he has taken charge of games in the European Nations Cup.
Murphy grew up in the Crosshaven, a village in south County Cork, and began his playing career with the local team, Crosshaven RFC. In his final year of secondary school, he went on to play with Christian Brothers College, Cork. While playing with the Christian Brothers team, he won the Munster Schools Senior Cup, beating Rockwell College in the final.
Murphy went on to play at senior level for his native provincial team, Munster. Murphy made his debut for the side on 17 October 2003, in a 2003–04 Celtic League match, away against Welsh side Newport Gwent Dragons. He came off the bench, replacing Eoin Reddan in a match Munster went on to lose 29–6. Murphy made a total of nine appearances in the league that season, with all but one of them coming from the bench.
In the 2004–05 Celtic League Murphy made only two appearances, starting on both occasions, while in the 2005–06 Celtic League he made on start and three appearances as a replacement. Murphy left Munster at the end of the 2005–06 having made 15 appearances for the senior team, and joined English Premiership side Leicester Tigers.
Murphy joined Leicester ahead of the 2006–07 season, and was one of a number of Irishmen in a Tigers squad that included Geordan Murphy, Shane Jennings, Leo Cullen and Ian Humphreys. Murphy made his debut on 9 September 2009, coming on as a replacement against Bath in the 2006–07 Premiership. He made his first start against London Irish on 18 November that year. Murphy made his European debut for the Tigers on 13 January 2007 in the 2006–07 Heineken Cup as a replacement against Cardiff Blues. In his first season with the club, Murphy made 16 Premiership appearances, starting on 9 occasions. At the end of the season Murphy appeared in both the Premiership final and Heineken Cup final. Murphy started the Premiership final against Gloucester as Leicester won 44–16. He also started the Heineken Cup final against London Wasps, only his second ever appearance in a European match. The opposition scrum-half on the day was Murphy's former Munster teammate Eoin Reddan. The Tigers came out second best, losing 25–9 at Twickenham.
In his second season with Leicester, Murphy featured in fewer Premiership games, but played more often in European matches. He played in 13 2007–08 Premiership games, starting 8 of these as Leicester finished in fourth, but made it to the final. Murphy did not feature in either the semi-final or the final as Leicester lost to Wasps. In Europe, Murphy started six games for the Tigers and came off the bench in another in the 2007–08 Heineken Cup as his side came second in their pool, but missed out on the knockout rounds. Murphy left Leicester Tigers in 2008 and returned to Ireland, joining the western province of Connacht.
Murphy moved to Connacht ahead of the 2008–09 season. He made his debut for the side in the 2008–09 Celtic League against Welsh side the Ospreys on 5 September 2008, starting for Connacht and playing the full match. Murphy made 16 appearances in the league that season, starting in all but one of these games. Murphy made his European debut for the province on 10 October 2008 against French side Dax in the 2008–09 European Challenge Cup. He started in six games for Connacht in the cup as they finished as runners-up in their pool and made it to the quarter-finals of the competition.
In the 2009–10 season, Murphy continued as Connacht's first choice scrum-half. He played in 14 of Connacht's 18 games in the 2009–10 Celtic League, starting all but two of these. At European level, Murphy played in all of Connacht's 2009–10 Challenge Cup games as they reached the semi-final, being beaten 19–12 at the Sportsgrounds by Toulon. In the following season, Murphy played in 21 of Connacht's games under new coach Eric Elwood in the 2010–11 Celtic League, which had been expanded to 12 teams. Murphy played in all six of Connacht's games in the 2010–11 Challenge Cup, starting five of them, as Connacht failed to make it past the pool stage. Over the course of these seasons, Murphy would, on occasion, serve as captain of Connacht.
In the 2011–12 season, Connacht qualified for their first ever Heineken Cup. Ahead of Connacht's first season in the top tier of European rugby, the team signed another scrum-half, Paul O'Donohoe from Leinster. Murphy remained Connacht's first choice in the position, playing 20 games in the 2011–12 league, which had been renamed the Pro12. In the Heineken Cup, however, Murphy started only two of the side's six games, coming on as a replacement in a further two.
Ahead of the 2012–13 season Murphy suffered a cruciate ligament injury, which kept him out for most of the season. At the same time a hamstring injury sidelined O'Donohoe. In their absence, academy scrum-half Kieran Marmion excelled, and went on to start every game that season. Murphy mad only a single substitute appearance that season, coming in the 2012–13 Pro12.
Marmion continued as Connacht's first choice in the 2013–14 season, with Murphy and O'Donohoe mostly making appearances as replacements. On 27 December 2013 Murphy made his one hundredth appearance for Connacht, starting against his former team Munster in the Pro12, in a 22–16 defeat. In total, Murphy made seven appearances in the league for the season, six of these appearances coming from the bench. In Europe, Murphy played in only one game during the season, coming off the bench in a famous victory over Toulouse in the 2013–14 Heineken Cup.
In April 2014, it was announced that Murphy's contract with Connacht was not being renewed and he would be leaving the province at the end of the season. He was one of a number of high-profile departures that included fellow centurion Gavin Duffy and former Scottish international fly-half Dan Parks. Murphy retired from professional rugby after leaving Connacht.
Following his retirement from playing rugby, Murphy started to work as a referee in the sport as a way of staying in the game. Murphy progressed quickly through the IRFU's Inter Provincial Appointments System, and in February 2015 was added to the union's National Panel of Referees, officiating in All-Ireland League matches. He began refereeing in the semi-professional British and Irish Cup in the 2015–16 season. Murphy refereed his first international match in February 2016, when he took charge of a European Nations Cup game between Germany and Portugal. On 27 November 2016, Murphy refereed his first Pro12 game, between Newport Gwent Dragons and Edinburgh.