Nelson played junior football for St Mary's.[1] He later represented the Geelong Falcons in the TAC Cup, where he played 12 matches while averaging 20 disposals. In 2014, he played for Vic Country at the AFL Under 18 Championships, averaging four tackles and 12 disposals in six matches. Nelson was drafted by West Coast with pick 51 in the 2014 national draft.[2]
Nelson played the first four rounds of the 2016 AFL season before being dropped to the WAFL. He responded with a strong performance against Swan Districts, playing a midfield role rather than defence. He amassed 29 touches, six tackles, seven marks and six inside-50s.[7] Nelson finished the year with eight matches in the AFL[5] and the WAFL.[6]
He strung five matches together at the start of the 2017 AFL season, before breaking his wrist in the second quarter of a loss to Hawthorn.[8] Despite the injury, Nelson recorded five tackles and 17 possessions after carrying on the match.[8] He missed three weeks of football, although he continued running in training, and returned with a 15-disposal, one-goal effort for East Perth.[9] In July, Nelson extended his contract by two years (until 2019).[10] He played 13 AFL matches[5] and two WAFL matches[6] for the year, polling one vote in East Perth's best and fairest.[11]
In 2018, Nelson played 10 AFL matches[5] but missed the grand final.[12] He played nine games in the WAFL,[6] including a match against Perth in which he was reported for striking Cody Ninyette. Nelson received a one-match suspension.[13]
At the end of the 2022 season, Nelson was delisted by the Eagles.[14]