John Mitchell begann seine Karriere als Eishockeyspieler bei den Plymouth Whalers, für die er von 2001 bis 2005 insgesamt vier Jahre lang in der Ontario Hockey League (OHL) spielte. In dieser Zeit wurde er während des NHL Entry Draft 2003 in der fünften Runde als insgesamt 158. Spieler von den Toronto Maple Leafs ausgewählt. Gegen Ende der Saison 2004/05 spielte der Angreifer erstmals im professionellen Eishockey, als er zwei Spiele für die St. John’s Maple Leafs, das damalige Farmteam Torontos, aus der American Hockey League (AHL) absolvierte.
In den Jahren 2005 bis 2008 stand Mitchell ausschließlich für das neue AHL-Farmteam der Maple Leafs, die Toronto Marlies, auf dem Eis, ehe er im Sommer 2008 in den Kader der Toronto Maple Leafs berufen wurde und im Laufe der Saison sein Debüt in der National Hockey League (NHL) gab.[1] Seine ersten beiden NHL-Tore erzielte Mitchell am 1. November 2008 beim 5:2-Sieg über die New York Rangers. Ende Februar 2011 wurde Mitchell in einem Transfergeschäft im Austausch für ein Siebtrunden-Wahlrecht im NHL Entry Draft 2012 an die New York Rangers abgegeben. Am 1. Juli 2012 unterschrieb er einen Zweijahresvertrag bei der Colorado Avalanche.[2]
Nach der Spielzeit 2016/17 erhielt Mitchell keinen weiterführenden Vertrag in Colorado, sodass er sich seit Juli 2017 auf der Suche nach einem neuen Arbeitgeber befand. Diesen fand er in den Cleveland Monsters aus der AHL, die ihn jedoch nach drei Pflichtspielen auf Probe nicht fest verpflichteten. In der Folge wechselte Mitchell im Oktober zu den Nürnberg Ice Tigers in die Deutsche Eishockey Liga (DEL), bei denen er einen Vertrag bis zum Ende der laufenden Saison unterzeichnete. In Nürnberg konnte er sich sofort als Leistungsträger etablieren, wurde Spieler des Monats Dezember, erzielte in 37 Vorrundenspielen 32 Scorerpunkte (12 Tore) und in den anschließenden Playoffs in zwölf Spielen elf weitere Punkte (5 Tore). Er schied mit seiner Mannschaft im Halbfinale der Best-of-Seven-Serie gegen die Eisbären Berlin aus. Anfang Mai 2018 wechselte er innerhalb der Liga zum amtierenden Deutschen Meister EHC Red Bull München.[3] Nach der Spielzeit beendete er im Mai 2019 im Alter von 34 Jahren seine aktive Karriere.
(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)