Born in Sydney, Australia, Ferris made his first-class debut for New South Wales against Alfred Shaw's touring English team on his home ground in 1886/87. He took seven wickets in the match, including five in the second innings, and after several more good displays was selected for the first Test, also at Sydney. The England first innings was a disaster as they collapsed to what remains their lowest Test total of 45 all out, Ferris bowling unchanged with Charlie Turner, but despite his nine wickets in the game England, inspired by Billy Barnes' second-innings 6–28, scraped to a 13-run win.
Ferris took another nine-wicket haul in the second Test, but again England were victorious, though in the only Test of the 1887/88 tour he could manage "only" six as the Englishmen came out on top yet again. He went with the Australians to England in 1888, and at Lord's for the first time in his career played in a winning Test side, his partnership with Turner accounting for no less than eighteen England wickets as Australia recorded a 61-run win. The Ashes remained in England, however, as the home side won the other two Tests. In 1889 Ferris was named as one of the first Wisden Cricketers of the Year.
He went to England again in 1890, taking 13 wickets in another series defeat and no less than 186 in the season as a whole, but then moved there permanently, playing a single Test for his adopted country against South Africa in 1891/92. Coincidentally, his former Australian team-mate Billy Murdoch also made his first England appearance in this match, which was not given Test status until some time later. Ferris' performance helped crush the home side by an innings and 189 runs, but it was to prove his final international appearance. He had taken 61 Test wickets at an average of just 12.70; only George Lohmann had a better career average.
Ferris played several seasons of county cricket (1892–1895) with Gloucestershire, for whom he scored his only hundred in 1893 but was otherwise something of a failure. At the end of his career, he appeared in a single Sheffield Shield match for South Australia in 1895/96, opening the batting but making nought, then finally in 1897/98 in two more games for New South Wales. In his last match he made a half-century but did not bowl a single ball.