*Club domestic league appearances and goals, correct as of 13:17, 2 November 2024 (UTC) ‡ National team caps and goals, correct as of 14:12, 20 November 2023 (UTC)
On 7 December 2021, it was announced that Derry City had signed Kavanagh from Shamrock Rovers for an undisclosed fee, signing a 3-year contract with the club.[13][14][15] He made his first career appearance in European competition on 14 July 2022, in a 2–0 loss away to Riga in the UEFA Europa Conference League.[16] On 13 November 2022, Kavanagh came off the bench in the 2022 FAI Cup Final, in a 4–0 win over Shelbourne at the Aviva Stadium, a record Cup Final scoreline margin.[17] His first season with the club saw him score 2 goals in 37 appearances in all competitions.[6] His second season with Derry saw him feature in 5 of the 6 games in their UEFA Europa Conference League campaign, playing at home and away against HB of Faroe Islands, at home to KuPS of Finland and home and away to Tobol of Kazakhstan, against whom he scored in the penalty shootout in the second leg at Tallaght Stadium, as his side were defeated 6–5 on penalties.[18] He scored 6 goals in 36 appearances in all competitions in 2023.[6] In November 2023, it was reported that Derry City had agreed a fee for Kavanagh with recent FAI Cup winners St Patrick's Athletic.[19][20]
St Patrick's Athletic
On 21 November 2023, it was announced that Kavanagh had signed a multi-year contract with his boyhood club St Patrick's Athletic for an undisclosed fee.[21][22] He made his debut for the club on 3 February 2024, scoring the final goal of the game in a 3–1 win away to UCD in the Leinster Senior Cup.[23] His first league goal for the club came on 19 April 2024, when he scored the equaliser in a 1–1 draw with Waterford at Richmond Park.[24] On 13 June 2024, he came off the bench in the 90th minute before heading home the winning goal in the 96th minute of a 2–1 win at home to rivals Shamrock Rovers.[25] On 4 August 2024, Kavanagh came off the bench in the 60th minute at home to Sligo Rovers and 5 minutes later scored an equaliser from 30 yards before scoring again in the 10th minute of injury time from the penalty spot to secure a 3–2 win for his side.[26]