Max Durocher (Jamie Foxx) is a meticulous Los Angeles cab driver trying to earn enough to start his own limousine business. One of the evening’s fares is federal prosecutor Annie Farrell (Jada Pinkett Smith), who works for the U.S. for the Central District of California. On the drive to her office, they strike up a conversation and Annie gives Max her business card.
Max’s next fare is Vincent (Tom Cruise). Apparently impressed by Max’s skill at navigating through traffic, Vincent tells Max that he is in Los Angeles for one night to complete a real estate deal, and offers Max $600 to drive him to several locations. Initially reluctant to break regulations, Max is eventually persuaded. As Max waits at the first stop, a corpse falls onto his car; Vincent reveals himself as a hitman and the body is one of his five targets. He forces Max to hide the body in the trunk and continue driving.
At the second stop, Vincent ties Max to the steering wheel. Max asks a group of young men for help, but two of them rob him and take Vincent’s briefcase. Returning, Vincent kills them. He then offers to buy Max a drink at a jazz club. At the club, Vincent engages the owner Daniel (Barry Shabaka Henley) in conversation. Vincent then reveals Daniel to have been his third target. Max pleads with Vincent to let Daniel go, causing Vincent to offer a compromise, betting Daniel cannot answer a question about where Miles Davis “learned music”. Daniel states that Davis went to the Juilliard School, seemingly getting the answer correct. However, Vincent unexpectedly shoots Daniel, revealing that Miles Davis dropped out of Julliard to be mentored by Charlie Parker.
Max’s boss Lenny, who has been hectoring him over the radio, tells Max his mother Ida (Irma P. Hall) called. Learning of Max’s nightly visits to the hospital to see his mother, Vincent insists that Max not break his routine. At the hospital, Ida proudly tells Vincent that Max has his own limousine company, revealing Max has been lying to her.
Overwhelmed, Max leaves and hurls Vincent’s briefcase onto a freeway where it is destroyed by a passing truck. With the information on his last two targets destroyed, Vincent coerces Max to meet drug lord Felix Reyes-Torrena (Javier Bardem) to re-obtain the information. Max, posing as Vincent, acquires the information but Felix orders his men to kill “Vincent” if he does not complete the job.
Max heads with Vincent to a nightclub, seeking the next target, Peter Lim (Inmo Yuon). Narcotics detective Ray Fanning (Mark Ruffalo) uncovers a connection between the three victims and reports his finding to FBI agent Frank Pedrosa (Bruce McGill). Pedrosa identifies the victims as witnesses in a federal grand jury indicting Reyes-Torrena the following day. At the nightclub, Vincent kills Felix’s hitmen, Lim, and his bodyguards. Fanning rescues Max and smuggles him outside but is killed by Vincent, who beckons Max back into the cab.
Following their getaway, the two trade insulting summaries of each other’s personalities and choices in life. After a heated exchange, Max deliberately crashes the cab, but both survive, and Vincent escapes. A police officer arrives. Seeing the corpse in the trunk, he tries to arrest Max. However, Max notices Vincent’s open laptop, revealing that his final target is Annie. He overpowers the police officer, takes his gun, and rushes toward Annie’s office building.
Stealing a bystander’s phone, Max uses Annie’s business card to call and warn her. She is incredulous until Max reveals details about Vincent’s previous victims, urging her to call 911. Vincent steals the security guard’s gun and uses a fire axe to cut the power and telephone lines on Annie’s floor. Vincent finds Annie but is shot and wounded by Max, who escapes with Annie on foot. Vincent pursues the pair onto a metro rail train. Cornered on the train, Max engages Vincent in a sudden shootout. Vincent, fatally wounded, slumps into a seat, repeating a story about a man dying unnoticed on a Metro train. Max and Annie get off at the next station in the dawn of a new day.