Undrafted, Stapleton played for two seasons with the Green Bay Gamblers of the USHL. Stapleton then represented the University of Minnesota Duluth for four seasons, where he led the team in scoring as a freshman and had back-to-back 40 point seasons. After a brief stint with the Portland Pirates of the AHL, he signed with Jokerit of the FinnishSM-liiga, completing a tryout which led to a one-year contract. During his first Jokerit season, Stapleton won the SM-liiga silver medal and finished second in playoff scoring. On June 6, 2008, Stapleton signed as a free agent to the Toronto Maple Leafs for the 2008–09 season. Stapleton was assigned to the Toronto Marlies of the American Hockey League on September 26, 2008. On 26 February 2009, Stapleton played his first career NHL game with the Toronto Maple Leafs, scoring the shootout winner. In his next game Stapleton was credited with his first NHL goal against the Ottawa Senators, goaltender Brian Elliott on February 28, 2009. On July 1, 2009, Stapleton was traded to the Atlanta Thrashers with Pavel Kubina for Garnet Exelby and Colin Stuart. After signing with the Thrashers, Stapleton was then assigned to affiliate, the Chicago Wolves, for the 2009–10 season. For the 2010–2011 season, Stapleton signed a Professional Try-out agreement with the San Antonio Rampage of the AHL. On November 30, 2010, Stapleton was signed to a 2-year contract by the Atlanta Thrashers. On February 27, 2011, Stapleton scored his first goal since April 16, 2010. It was against his former team, the Toronto Maple Leafs. He was invited and accepted an invitation to join the USA hockey team for the 2011 IIHF tournament. On April 10, 2011, Stapleton scored a goal in the 3rd period against the Pittsburgh Penguins. This was the last game of the season for the Thrashers and would be the last goal in their history. The following season, the Thrashers, including Stapleton, moved to Canada to become the Winnipeg Jets. For the first time Stapleton remained at the NHL level for an entire season, often playing the point on the power play despite playing his even-strength minutes as a third- or fourth-line forward; partly because of this, he logged career highs in games played, goals, assists and points. Despite this performance, Stapleton was not re-signed by the Jets when his contract expired the following summer. On July 10, 2012, it was announced that Stapleton had agreed to terms with Dinamo Minsk of the KHL. After a good performance with Dinamo, he signed in 2013 a two-year deal with Ak Bars Kazan. After only one-season with Ak Bars, Stapleton was released from the remaining year of his contract and joined fellow KHL club, Neftekhimik Nizhnekamsk on a one-year deal on July 11, 2014. Stapleton was traded to Metallurg Magnitogorsk on December 15, 2014. On April 17, 2015, Stapleton left the KHL and signed a one-year contract with Swiss club, EHC Biel of the NLA. On August 1, 2016 he signed with the Karlstad-based, Swedish club Färjestad BK, of the Swedish Hockey League. After collecting just 4 points in 20 games, he parted company with the team on November 26, 2016, and inked a deal with HC Spartak Moscow in a return to the KHL for the remainder of the 2016–17 campaign the following day. On April 21, 2017, Stapleton agreed to a one-year contract with EHC Olten of the Swiss League. He contributed with 21 points in 29 games before opting to leave Switzerland and join German club, ERC Ingolstadt of the Deutsche Eishockey Liga for the closing stages of the 2017–18 season on January 6, 2018.