He was selected by his hometown Niagara IceDogs of the Ontario Hockey League (OHL) in the second round, 27th overall, of the 2009 OHL Priority Selection.
Hamilton played for the Icedogs for three-and-a-half seasons. During his time, he was teammates with future NHL players such as Ryan Strome, Andrew Shaw and Brett Ritchie. Hamilton was also teammates with his older brother Freddie, who was a fifth-round selection of the San Jose Sharks in the 2010 NHL entry draft.
On December 8, 2011, Hamilton signed a three-year, entry-level contract with the Bruins.[7]
Professional
Boston Bruins (2013–2015)
Hamilton began the 2012–13 season with the IceDogs. However, he was recalled by the Bruins to play for the club during the NHL's lockout-shortened season. On January 19, 2013, Hamilton made his NHL debut for the Bruins in a 3–1 victory against the New York Rangers,
[8] and two games later, on January 23, Hamilton scored his first NHL point for an assist in an overtime loss against the Rangers in Madison Square Garden.[9] On February 15, Hamilton scored his first career NHL goal against Ryan Miller of the Buffalo Sabres.[10] Hamilton made his Stanley Cup playoff debut on May 3, replacing defenceman Andrew Ference, who was serving a one-game suspension for his illegal hit on Toronto Maple Leafs forward Mikhail Grabovski. On April 25, Hamilton was named the 44th Annual NESN 7th Player recipient, an award given to the Bruin who most exceeded all expectations that season, as voted by the team's fans.[11]
Calgary Flames (2015–2018)
On June 26, 2015, during the 2015 NHL entry draft, as an impending restricted free agent on July 1 and with the Bruins facing salary cap constraints, Hamilton was traded to the Calgary Flames in exchange for a first-round draft pick (used to select Zachary Senyshyn) and two second-round picks (used to select Jakob Forsbacka Karlsson and Jérémy Lauzon), all in the 2015 draft.[12] Four days later, on June 30, Hamilton signed a six-year, $34.5 million contract with the Flames worth $5.75 million annually.[13]
During the 2016–17 season, Hamilton was paired with Mark Giordano, prompting greater defensive play in both players.[14][15] The pairing helped the Flames make the playoffs for the second time in three years. The playoffs were short-lived for the Flames, who lost to the Anaheim Ducks in four games.[16] On February 17, 2018, Hamilton played in his 400th NHL game during which he recorded his first NHL hat-trick.[17]
Carolina Hurricanes (2018–2021)
On June 23, 2018, Hamilton was traded to the Carolina Hurricanes (along with teammate Micheal Ferland and prospect Adam Fox) in exchange for Elias Lindholm and Noah Hanifin.[18] After a respectable first season with Carolina, Hamilton began the 2019–20 season playing some of the best hockey of his career before his regular season was cut short when he broke his fibula on January 16, 2020.[19] He finished the regular season scoring 40 points in 47 games played.[20] As a result of the COVID-19 pandemic, the NHL season was paused, and delayed for several months allowing Hamilton to return for Carolina's final five games of the 2020 Stanley Cup playoffs.[21] Despite missing several months of games due to his injury, Hamilton finished seventh in James Norris Memorial Trophy voting.[22] Coming back from injury while playing on an expiring contract, Hamilton had another stellar year, finishing the 2020–21 season fourth in Norris Trophy voting.[23]
New Jersey Devils (2021–present)
After three productive seasons with the Hurricanes, Hamilton left the club as a free agent and on July 28, 2021, he signed a seven-year, $63 million contract with the New Jersey Devils.[24]
On November 28, 2023, in a game against the New York Islanders, Hamilton suffered a torn left pectoral. Following successful surgery he was placed on injured reserve, expected to be out indefinitely.[25]