New York . Il brillante detective John Shaft ( Samuel L. Jackson ) arresta, con l’accusa di omicidio a sfondo razzista, Walter Wade Jr. (Christian Bale), il figlio viziato di un magnate immobiliare. Il poliziotto è sicuro di poter spedire in prigione il colpevole, ma questo, grazie all’aiuto del ricco padre , fugge in Svizzera . Come se non bastasse, si perde ogni traccia di Diane Palmieri (Toni Collette), la testimone oculare del delitto. Passano due anni e Wade torna negli Stati Uniti per affrontare il processo, sicuro di uscirne pulito grazie ai soldi e all' influenza del padre . Ma Shaft, che non si è mai arreso, si rimette sulle tracce di Diane, la cameriera del locale dove avvenne il delitto. Wade si rivolge quindi al boss della droga Peoples Hernandez (Jeffrey Wright), per fare fuori la donna. Riuscirà il detective Shaft a trovare Diane prima di Hernandez e a convincerla a testimoniare al processo?