Emanuel Villa rozpoczął karierę zawodniczą w klubie argentyńskiej Primiera Division CA Huracán w 2001 roku. W 2003 roku przeszedł do Atlético Rafaela z którym w sezonie 2003/2004 spadł z ligi po meczach barażowych z Huracán Tres Arroyos.
W następnym sezonie Villa powrócił do Primera Division podpisując kontrakt z Rosario Central. W 2006 roku podpisał nowy kontrakt z meksykańskim klubem Atlas Guadalajara, natomiast w 2007 roku został zawodnikiem Tecos UAG Guadalajara.
4 stycznia 2008 roku Villa podpisał 3,5-letni kontrakt z Derby County. Angielski klub zapłacił za niego 2 miliony funtów. W Derby zadebiutował w meczu przeciwko Wigan Athletic. 2 lutego w ostatniej minucie meczu z Birmingham City strzelił swoją pierwszą bramkę. Mecz kończy się wynikiem 1-1. 29 marca zdobył dwa gole w zremisowanym 2-2 meczu z Fulham.
2 lipca 2009 roku Villa został zawodnikiem Cruz Azul.