Нильсон играл до 2011 года в шведском клубе Лулео. В 2010 году сыграл одну игру на чемпионате мира среди юниоров, где юношеская сборная Швеции выиграла бронзовую медаль. В 2018 году на чемпионате мира в Дании вместе со сборной завоевал золотые медали первенства.
В составе «Нью-Йорк Айлендерс»
В 2009 году был выбран на драфте НХЛ командой «Нью-Йорк Айлендерс» под общим 62-м номером, в 2011 году был выбран на драфте КХЛ минским «Динамо» под общим 10-м номером[1].
26 мая 2014 года подписал контракт с казанским «Ак Барсом». С 2015 по 2016 года — выступал за клуб НХЛ «Эдмонтон Ойлерз».