Al draft NFL 2003 McGee fu selezionato come 23ª scelta assoluta dai Bills[1] ma a causa di un infortunio al ginocchio saltò l'intera stagione regolare. Il suo debutto nella NFL avvenne il 12 settembre 2004 contro i Jacksonville Jaguars indossando la maglia numero 21. Nei primi due anni riuscì sempre a superare quota mille yard corse.
Nella stagione 2006 a causa di diversi problemi McGee non riuscì a ripetersi su tali livelli. A fine stagione i Bills decisero di cederlo ai Ravens in cambio della 92a e 239a scelta del draft NFL 2007 e la 71a scelta del draft NFL 2008.
Baltimore Ravens
Coi Ravens, McGee firmò un contratto di 7 anni per un totale di 40,12 milioni di dollari. Con la nuova franchigià tornò immediatamente su ottimi livelli, anche se Baltimore non riuscì a raggiungere i playoff. La stagione successiva ritornò ad avere vari infortuni che lo costrinsero a saltare 3 partite. A partire dalla stagione 2009, McGee si trovò ad essere meno coinvolto negli schemi offensivi della squadra in favore del compagno Ray Rice.
Il 28 luglio 2011, i Ravens svincolarono il giocatore a causa del suo pesante contratto
Denver Broncos
Il 30 luglio 2011, McGee firmò con i Broncos un contratto di 4 anni per un totale di 9,5 milioni di dollari di cui 3 milioni garantiti. Nella prima stagione a Denver tornò a superare quota mille yard corse per la prima volta dal 2007, coi Broncos che vinsero la propria division e batterono i Pittsburgh Steelers nel primo turno dei playoff, uscendo nel successivo contro i New England Patriots. A fine anno, Willis fu convocato per il secondo Pro Bowl in carriera.
Nelle prime dieci gare della stagione 2012, Willis giocò delle solide prestazioni totalizzando 731 yard corse e 4 touchdown. Nella vittoria della settimana 11 sui San Diego Chargers però, il giocatore si fratturò una gamba e si ruppe il legamento mediale collaterale, venendo costretto a uno stop che gli fece perdere tutto il resto della stagione[2].
Il 13 giugno 2013, McGee fu svincolato dai Denver Broncos[3].
Cleveland Browns
Il 19 settembre 2013, McGahee firmò con i Cleveland Browns dopo che il giorno precedente la franchigia aveva scambiato il proprio running back titolare Trent Richardson con gli Indianapolis Colts[4]. Il primo touchdown con la nuova maglia lo segnò nella settimana 5 contro i Bills in cui i Browns ottennero la terza vittoria consecutiva[5]. Il secondo lo segnò nella sconfitta della settimana 13 contro i Jacksonville Jaguars[6].
^(EN) 2003 National Football League Draft, Pro Football Hall of Fame. URL consultato il 23 settembre 2012 (archiviato dall'url originale il 29 settembre 2015).