Spaling grew up playing most of his minor hockey for his hometown Drayton Defenders of the Ontario Minor Hockey Association (OMHA) before playing high school hockey for Norwell District Secondary School at age 16.
Spaling went undrafted in the OHL after his minor midget season and signed as a free agent with the Listowel Cyclones Jr. B. club of the OHA. After a solid season with the Cyclones, Spaling was chosen in the sixth round of 2005 OHL Priority Selection as a major midget-aged player by the Kitchener Rangers.
Prior to playing in the OHL, Spaling played with the Listowel Cyclones of the Mid-Western Junior Hockey League. The Cyclones had won the league's Cherry Cup, despite placing seventh (of nine teams) in the regular season. This was the team's only league title in the MWJBHL, although they had won the 1976–77 title while in the Central Junior "C" Hockey League.
The Kitchener Rangers selected Spaling in the sixth round of the 2005 OHL Priority Draft, 118th overall. He played with the Rangers for the duration of his OHL career from 2005 to 2008. He was named the Kitchener Rangers' rookie of the year for the 2005–06 season.
In 2007, he played in the CHL Top Prospects Game. He also played for the OHL All-Stars in the 2007 ADT Canada-Russia Challenge; the OHL team was the only Canadian team to have won both games against the Russian team—the QMJHL and WHL teams both won and lost one game each. Spaling competed in the 2008 OHL All-Star Classic for the Western Conference All-Stars, scoring one goal.
Spaling was named an alternate captain for his last season with the Rangers, 2007–08. He contributed with high offensive numbers during the 2008 playoffs, scoring 30 points in 20 games. At the 2008 Memorial Cup, he was tied in third in points with eight points in five games. Spaling won the William Hanley Trophy in the 2007–08 season, awarded to the OHL's most sportsmanlike player.
Spaling was selected for Team Canada's junior training camp for the 2008 World Junior Ice Hockey Championships, but he was forced to return home early as he had been diagnosed with mononucleosis.
Among North American skaters, Spaling was ranked 24th in by the NHL Central Scouting Bureau's final report for 2007; he was 30th in the mid-season rankings. At the 2007 NHL Entry Draft, he was selected in the second round, 58th overall, by the Nashville Predators.
Spaling signed an entry-level contract with the Predators in the summer of 2008. The contract was reported to worth $1.95 million over three years. He attended the Predators' training camp and was later reassigned to the team's American Hockey League (AHL) affiliate, the Milwaukee Admirals. He began the 2008–09 season playing for the Admirals wearing jersey number 13. After beginning the 2009–10 season with Milwaukee, he was recalled by Nashville, where he played his first NHL game on December 15, 2009, and assisted on a goal by Ryan Jones in Nashville's 7–4 victory over the Tampa Bay Lightning. On December 13, 2010, he scored his first NHL goal in a 5–0 win against the New York Islanders.
On July 7, 2011, Spaling signed a two-year contract extension with the Predators.
On June 27, 2014, at the 2014 NHL Entry Draft, Spaling, as an impending restricted free agent, was traded along with Patric Hörnqvist to the Pittsburgh Penguins in exchange for forward James Neal. The Penguins avoided arbitration with Spaling on July 31 when they agreed on a two-year, $4.4 million deal. He then scored his first goal with the Penguins on October 22 in a game against the Philadelphia Flyers.
On July 1, 2015, Spaling was part of a blockbuster trade that sent himself, Kasperi Kapanen, Scott Harrington and two draft picks (conditional first- and third-round picks in 2016) to the Toronto Maple Leafs in exchange for Phil Kessel, Tyler Biggs, Tim Erixon and a 2016 second-round pick.
In his first season with the Maple Leafs in 2015–16, he assumed his customary checking-line role however was unable to replicate his offensive numbers from previous seasons. Spaling also battled injuries throughout the year, being limited to 35 games with the Leafs, where he producing 1 goal and 7 points. Entering the final days leading up to trade deadline, on February 22, 2016, Spaling was traded by the Maple Leafs, along with Roman Polak, to the San Jose Sharks in exchange for two second-round draft selections (2017 and 2018) and Raffi Torres. Spaling made his Sharks debut on February 24, where he recorded a goal on his first shot, playing in his first shift with the club.
He left for Switzerland in the summer of 2016, signing a one-year deal with Genève-Servette HC of the National League (NL) in August. Spaling made his NL debut on September 23, 2016 on home ice against Fribourg-Gottéron, after missing the first 6 games with a shoulder injury. He scored his first NL goal on September 24, 2016 in a 5-2 win against HC Lugano at the Resega. His option for a second year was activated on August 8, 2017.
Nick Spaling was born in Palmerston, Ontario, but raised in nearby Drayton. His parents are Charles and Lorrie. He has three siblings: older sister Nicole, older brother Nathan, and younger sister Natasha. Nathan also played hockey and was a standout Canadian university player with the UOIT Ridgebacks, as well as having represented the Guelph Storm in the OHL.
His favourite players are Joe Sakic and Doug Gilmour, and he was a fan of the Maple Leafs growing up.