Mahoney was born in Cardiff and grew up in Manchester as his father played Rugby league with Oldham R.L.F.C.. Mahoney began playing non-league football with Ashton United before signing for Crewe Alexandra in March 1966. With Liverpool showing a big interest in Mahoney, Crewe's former Stoke player Johnny King recommended him to Stoke manager Tony Waddington and he duly took his advice and signed him for £19,500 in March 1967. A rough diamond at first, Mahoney regularly lost possession by 'over-elaborate dribbling'. Waddington taught him the art of pass and move and he became a quality midfielder sitting just in front of his defence his task was to win the ball back and play in his wingers or forwards. Due to competition for places he was subject of a £50,000 offer from Millwall in February 1972 but rejected the chance to move to London. His patience was rewarded with a substitute appearance in the 1972 Football League Cup Final as Stoke beat Chelsea 2–1. Sensing that Mahoney had matured into the player he wanted him to be Waddington sold his major rival for a place in Stoke's midfield, Mike Bernard, to Everton for £140,000 in May 1972. He developed a fine understanding with Alan Hudson which saw a strong Stoke side nearly win the league title in 1974–75. In January 1976 a severe storm in Stoke-on-Trent caused considerable damage to the Victoria Ground and in order to pay for the repairs the club sold off their players. This meant that Stoke struggled in 1976–77 and were relegated to the Second Division. Mahoney joined Middlesbrough in July 1977 for £90,000. "I didn't want to leave but when I looked at the fixture list and Stoke were away at Mansfield and Middlesbrough at home to Liverpool, I knew I had to go." He spent two seasons at Ayresome Park making 90 appearances helping "Boro" to two mid-table finishes. He then moved on to Swansea City with whom helped gain promotion in 1980–81 and finish 6th in their first season in the top-flight. But Swansea suffered relegation in 1982–83 and Mahoney's career was ended on 1 March 1983 in a match against Brighton & Hove Albion he was on the receiving end of a crushing tackle which left him with a permanent limp. After leaving Swansea City, he became player-manager at Bangor City. With the "Citizens" Mahoney took them into the 1985–86 European Cup Winners' Cup beating Norwegians Fredrikstad FK and losing a respectable 3–0 to Atlético Madrid. He then spent a short time at the reformed Newport County before an unsuccessful three years back to Bangor. The later coached Carmarthen Town.
International career
Whilst at Stoke Mahoney gained his first international cap for Wales, with a debut against England on 21 October 1967. However, it took him five years to win his first four caps, but by 1973 he had become a regular in the Welsh side, and in total he went on to make 51 appearances for his country. His final game was also against England in a British Home Championship match on 23 February 1983.