Na cidade de Veneza, no século XVI, Bassanio (Joseph Fiennes) pede a Antonio (Jeremy Irons) o empréstimo de três mil ducados para que possa cortejar Portia (Lynn Collins), herdeira do rico Belmont. Antonio é rico, mas todo seu dinheiro está comprometido em empreendimentos no exterior. Assim ele recorre ao judeu Shylock (Al Pacino), que vinha esperando uma oportunidade para se vingar de Antonio. O agiota impõe uma condição absurda: se o empréstimo não for pago em três meses, Antonio dará um pedaço de sua própria carne a Shylock. A notícia de que seus navios naufragaram deixa Antonio em uma situação complicada, com o caso sendo levado à corte para que se defina se a condição será mesmo executada.