He signed for Sunderland, from Newmilns and made his debut for them on 13 September 1890 against Burnley in a 3–2 defeat at Newcastle Road. Overall he made 258 league appearances scoring 46 goals while at the club, spanning from 1890 to 1899. He then moved to Scottish side Third Lanark.
Wilson won his first cap for Scotland against Wales on 22 March 1890 in a 5–0 win at Underwood Park. He went on to make 3 further caps for his country, overall making 4 appearances scoring one goal.