Once Upon a Time in Mexico is a 2003 action film written, edited and directed by Robert Rodriguez. It is the final film in the "Mariachi Trilogy", which also includes El Mariachi and Desperado. Antonio Banderas reprises his role as El Mariachi. The film also stars Johnny Depp, Salma Hayek, Willem Dafoe, Enrique Iglesias, Mickey Rourke, Eva Mendes and Rubén Blades.
The film received positive reviews but was criticized for reducing El Mariachi (Antonio Banderas) to an almost secondary character in his own trilogy, and also for having a convoluted plot. In the special features of the film's DVD, Robert Rodriguez has explained that this was intended, as he wanted this to be the The Good, the Bad and the Ugly of the trilogy. `