Ferris was born at Sydney in 1867 and made his first-class debut for NSW in 1886-87 against Alfred Shaw's English tourists, taking seven wickets in the match. By the end of that season he was an Australian Test bowler. In his first Test, at Sydney, he bowled unchanged with Turner to dismiss England for 45; Australia still lost the match by 13 runs.
The Turner-Ferris partnership through 1887-88 and the 1888 English tour was the most consistently successful new-ball pairing of the 19th century. At Lord's in July 1888 the pair took all 18 England wickets between them as Australia won by 61 runs — Ferris contributing 5/26 in the first innings and 3/19 in the second. He took 199 first-class wickets on the 1888 tour at 14.22, second only to Turner's 283. Like Turner, he was named one of the first six Wisden Cricketers of the Year (the 'Six Great Bowlers' issue) in 1889.
Ferris's 9 Tests for Australia between January 1887 and August 1890 produced 48 wickets at 14.25. He had a smooth, slingy left-arm action, bowled medium-pace, and used variations of length and pace rather than swing.
In 1890, after the financially troubled tour of England, Ferris quit Australian cricket, moved to England and qualified for Gloucestershire by residence. In 1891-92 he was selected for the second English tour to South Africa, captained by Walter Read, and in his only Test for England — the only one of that tour — he took 6/54 and 7/37 (13 wickets in the match). He thus became the second man, after Billy Midwinter, to play Tests for two different countries.
He never settled in England and his form fell away; by the late 1890s he had moved to South Africa, served briefly in the Boer War, and contracted typhoid. He died at Durban on 21 November 1900, aged 33.