Sam Gagner spielte von 2001 bis 2005 in der Nachwuchsliga Greater Toronto Hockey League für die Toronto Marlboros, ehe er in die US-amerikanische Juniorenliga United States Hockey League zu den Sioux City Musketeers wechselte und dort in seiner ersten Saison zweitbester Scorer des Teams mit 46 Punkten war.
Im Sommer 2005 wurde Gagner von den London Knights im Entry Draft der kanadischen Juniorenliga Ontario Hockey League (OHL) in der vierten Runde ausgewählt. Er galt als ein klarer Favorit bereits in der ersten Runde gedraftet zu werden, doch da er bereits im Vorfeld erklärt hatte, lieber für die University of Wisconsin–Madison in der National Collegiate Athletic Association (NCAA) anzutreten, wurde er von den Teams übergangen. Er entschied sich schließlich doch anders und wechselte im Sommer 2006 zu den London Knights. Dort bildete er mit Patrick Kane und Sjarhej Kaszizyn eine Angriffsreihe. Gagner erreichte mit den Knights das Finale der OHL-Playoffs und war während der Saison fünftbester Scorer der Liga. Seine Angriffsreihe erzielte über die Saison insgesamt 394 Punkte.
Aufgrund seines großen Talents wurde er im NHL Entry Draft 2007 von den Edmonton Oilers in der ersten Runde an Position sechs ausgewählt. Nach überzeugenden Leistungen in der Super Series 2007 mit einer kanadischen U20-Auswahl und im Trainingscamp der Oilers im September erhielt Gagner einen Vertrag bei den Oilers und konnte sich im NHL-Kader durchsetzen. Schnell entwickelte er sich als Spezialist im Shootout und konnte dadurch einige Spiele entscheiden. Aus dem Spiel heraus punktete er in der ersten Saisonhälfte jedoch eher selten. In der zweiten Saisonhälfte konnte er seine Punkteausbeute steigern und er sammelte im Februar 2008 innerhalb von zwölf Spielen 13 Scorerpunkte, weshalb er zum NHL-Rookie des Monats ernannt wurde. Die Saison schloss er schließlich mit 13 Toren und 36 Assists ab und belegte somit den fünften Platz in der Scorerliste der Rookies. In den folgenden drei Spielzeiten konnte er an diesen Wert mit zweimal 41 und einmal 42 Scorerpunkten jeweils knapp nicht heranreichen. Und auch die Saison 2011/12 absolvierte er nicht auf dem Leistungsniveau seines Rookiejahres. Dennoch gelang es ihm am 2. Februar 2012 einen Franchise-Rekord der Edmonton Oilers von Wayne Gretzky und Paul Coffey einzustellen. Beim 8:4-Sieg über die Chicago Blackhawks erzielte der Stürmer vier Tore und bereitete die restlichen vier vor. Ein Spiel mit mindestens acht Scorerpunkten war in der NHL-Geschichte bisher nur zwölf Spielern gelungen, zuletzt Mario Lemieux am 31. Dezember 1989. Dass ein Spieler an allen acht Treffern seines Teams beteiligt war, war zuvor nur einmal in der Ligahistorie gelungen.
Nach sieben Jahren in Edmonton gaben ihn die Oilers im Juni 2014 an die Tampa Bay Lightning ab und erhielten im Gegenzug Teddy Purcell. Tampa jedoch schickte Gagner samt Brandon Crombeen direkt weiter zu den Arizona Coyotes, die dafür ein Sechstrunden-Wahlrecht im NHL Entry Draft 2015 abgaben.[1] Auch bei den Coyotes verbrachte Gagner nur eine Saison, ehe er im Juni 2015 samt einem erfolgsabhängigen Draft-Wahlrecht an die Philadelphia Flyers abgegeben wurde, wobei die Coyotes im Gegenzug Nicklas Grossmann sowie den weiterhin unter Vertrag stehenden Chris Pronger erhielten. Nach Auslauf seines Vertrages am Ende der Saison 2015/16 schloss sich der Stürmer im August 2016 als Free Agent den Columbus Blue Jackets an.
Im Trikot der Blue Jackets absolvierte der Kanadier mit 50 Scorerpunkten seine bis dato beste Saison in der NHL. Dennoch verlängerte er seinen Vertrag in Columbus nicht und wechselte im Juli 2017 als Free Agent zu den Vancouver Canucks. Dort bestritt er die gesamte Spielzeit 2017/18, wurde jedoch im Oktober 2018 leihweise an die Toronto Marlies aus der American Hockey League (AHL) abgegeben. Anschließend gaben die Canucks den Angreifer im Februar 2019 endgültig an die Edmonton Oilers ab, sodass Gagner an seine alte Wirkungsstätte zurückkehrte. Im Gegenzug wechselte Ryan Spooner nach Vancouver. In Edmonton war er in der Folge ein Jahr aktiv, ehe er zur Trade Deadline im Februar 2020 samt je einem Zweitrunden-Wahlrecht für die NHL Entry Drafts 2020 und 2021 zu den Detroit Red Wings transferiert wurde. Im Tausch dafür erhielten die Oilers Andreas Athanasiou und Ryan Kuffner. Bei den Red Wings verbrachte der Stürmer bis zum Ende seines Vertrags insgesamt eineinhalb Spielzeiten. Im September 2022 erhielt der abermalige Free Agent einen Jahresvertrag bei den Winnipeg Jets. In deren Trikot bestritt er im Dezember 2022 seine insgesamt 1000. Partie der regulären Saison in der NHL. Im Sommer 2023 wurde sein auslaufender Vertrag nicht verlängert, woraufhin der Stürmer im Oktober 2023 einen Vertrag bei den Bakersfield Condors aus der AHL erhielt. Wenig später erhielt er auch vom NHL-Kooperationspartner aus Edmonton einen Vertrag für die NHL, sodass er sich zum dritten Mal den Oilers anschloss.
(Legende zur Spielerstatistik: Sp oder GP = absolvierte Spiele; T oder G = erzielte Tore; V oder A = erzielte Assists; Pkt oder Pts = erzielte Scorerpunkte; SM oder PIM = erhaltene Strafminuten; +/− = Plus/Minus-Bilanz; PP = erzielte Überzahltore; SH = erzielte Unterzahltore; GW = erzielte Siegtore; 1Play-downs/Relegation; Kursiv: Statistik nicht vollständig)