Born in Kilmacthomas, County Waterford, Kirwan was one of five sons born to Patrick and Catherine Kirwan (née McGrath). He was educated locally and later worked as a bank official.
Kirwan first played on the inter-county scene as a member of the Waterford senior team that was defeated by Dublin in the 1898 All-Ireland final. He later lined out with Wexford before making his debut with the Kerry senior team in 1902. Kirwan went on to win back-to-back All-Ireland medals with Kerry in 1903 and 1904. He also won three successive Munster medals.