Hardcastle commenced his club rugby in New Zealand with Petone and represented for Wellington from 1895 to 1897. He joined the Melrose club in 1897 and was selected in a North Island representative side from where he was selected for the All Blacks 1897 tour of Australia he played in seven tour matches but no Tests. He journeyed to Sydney in 1899 on hearing that the visiting British and Irish Lions would be not be travelling any further than Sydney. Australian rugby in those days had no residential rules and once they took the field with a Sydney club, players qualified as Australians for possible national selection.
He became an early convert to the fledgling league code and played for the Ipswich club in Queensland. He was selected in the 2nd Test of 1908 against New Zealand. Five former Wallabies had debuted for the Kangaroos in the inaugural Test three weeks earlier, Hardcastle's league Test debut that day with George Watson made them the 6th and 7th Australian dual code internationals. He also played in the 3rd Test a week later.
Hardcastle toured with the pioneer 1908 Kangaroos and played for Australia on six occasions though he did not play in the Tests. On his return from the tour he joined the Glebe Dirty Reds in Sydney where he played the next two seasons before retirement.
Hardcastle served with the Australian Imperial Force in World War I. He was a Private in the 3rd Infantry Battalion seeing active service as a machine gunner. He embarked from Sydney, New South Wales, on board HMAT A55 Kyarra on 3 June 1916 at age 42. He survived the war and was demobilised in the weeks immediately after the armistice. He died in Randwick, New South Wales on 11 July 1944. He was buried at Botany Cemetery on 13 July 1944.