Francis fece il suo debutto in maglia Knicks il 24 febbraio 2006 nel derby con i New Jersey Nets, segnando 16 punti. Durante tutta la stagione ebbe però problemi di tendinite ad un ginocchio e vari infortuni, che lo limitarono a soli 11,3 punti a partita. A ridimensionare le sue prestazioni contribuì anche un evidente equivoco tattico creatosi tra lui e Stephon Marbury: per ruolo e caratteristiche, una presenza contemporanea sul parquet dei due giocatori era piuttosto difficile. Il 28 giugno 2007, giorno del Draft NBA 2007, i Knicks cedettero lui e Channing Frye ai Portland Trail Blazers in cambio di Zach Randolph, Dan Dickau e Fred Jones. I Blazers però tagliarono subito Francis, che divenne così "free agent" e libero di trovarsi una nuova squadra.