Stafford played for the St. Albert Bantam AA Flyers in St. Albert, Alberta, in 1999–2000. During the season, he finished third in League scoring with 26 goals and 47 points in 30 games while leading his team to a provincial berth. At the conclusion of the season, Stafford was selected to participate in Hockey Alberta's elite development program as a member of the Northwest Sharks in the 2000 Pioneer Chrysler Alberta Cup.

Stafford became a regular in the Sabres' lineup during the 2007–08 season, scoring his first career hat-trick against the Atlanta Thrashers on January 18, 2008. More than a year later, he went on to score his second hat-trick in a 10–2 rout of the Edmonton Oilers on January 27, 2009. A little less than a year after that, he celebrated his third hat-trick on December 15, 2010, against the Boston Bruins. He added his fourth, also against Boston, on January 1, 2011, his fifth on February 8, 2011 against the Tampa Bay Lightning, and his sixth on February 13, 2011, against the New York Islanders. On June 3, 2011, Stafford signed a four-year, $16 million contract extension with the Sabres.[3]

In his ninth season with the Sabres in 2014–15, on February 11, 2015, Stafford was traded alongside Tyler Myers, Brendan Lemieux, Joel Armia and a 2015 first-round draft pick(Jack Roslovic) to the Winnipeg Jets in exchange for Evander Kane, Zach Bogosian and the rights to goaltending prospect Jason Kasdorf.[4] On February 14, 2015, in just his second game on the Jets, Stafford scored a goal in regulation, as well as the shootout winner, in a 5–4 shootout victory over the Detroit Red Wings. On the eve of free-agency Stafford re-signed to a two-year contract to remain in Winnipeg on June 30, 2015.[5]