Il fait ses débuts professionnels en 2008-2009 avec les Admirals de Milwaukee, équipe affiliée aux Predators dans la Ligue américaine de hockey. Après avoir commencé la saison 2009-2010 avec les Admirals, il est rappelé en cours de saison avec les Pradtors et fait ses débuts dans la LNH avec cette équipe en décembre 2009[2]. Il joue un total de 28 matchs avec les Preds et réalise trois assistances. Il se taille un poste permanent la saison suivante, en jouant 74 matchs pour 14 points.
Il joue trois autres saisons avec les Predators et il est échangé le aux Penguins de Pittsburgh avec Patric Hörnqvist contre James Neal[3]. Alors qu'il est agent libre restreint, il s'entend sur un contrat de deux ans avec sa nouvelle équipe[4]. Son passage avec les Penguins ne dure qu'une seule saison puisqu'il passe aux Maple Leafs de Toronto durant l'été 2015 dans un échange à six joueurs, qui implique notamment Phil Kessel qui prend le chemin inverse[5].
Son passage à Toronto est plus court qu'à Pittsburgh, ne jouant que 35 parties pour sept points avec l'équipe, puisqu'il est échangé le avec Roman Polák aux Sharks de San José contre Raffi Torres et de deux choix au repêchage. Avec les Sharks qui se qualifient pour les séries éliminatoires, il atteint la finale de la Coupe Stanley mais son équipe perd face à son ancienne équipe, les Penguins.
Le , le Genève-Servette Hockey Club annonce la signature d'un contrat d'un an (2016-2017) plus une option d'un an (2017-2018) avec Spaling. Il retrouvera un ancien coéquipier, Mike Santorelli, avec qui il avait joué entre 2008 et 2010 chez les Admirals de Milwaukee[6].