Cresciuto nelle file del Cerro, nel 1996 ha debuttato in prima squadra. Nel 1998 si è trasferito al Nacional. Dopo tre stagioni nelle file del Nacional, nel gennaio 2001 è passato al Racing Santander, club spagnolo. Ha militato nelle file dei Racinguistas per quattro stagioni e mezzo, totalizzando 147 presenze e 24 reti. Nel giugno 2005 si è trasferito a parametro zero al Valencia[3]. Complici alcuni infortuni[4][5], nelle file del Valencia ha totalizzato 42 presenze e 4 reti in due stagioni. Il 13 luglio 2007 si è trasferito in prestito al Real Murcia[6]. Nel 2008 si è trasferito in Grecia, all'Aris Salonicco. L'anno successivo è tornato in patria, firmando con il Nacional. L'8 luglio 2010 si è trasferito in Argentina, al Lanús[7]. Il 17 luglio 2013 ha firmato un contratto biennale con il Racing Club[8]. Rimasto svincolato nel novembre 2013, nel gennaio 2014 è stato ingaggiato dal Defensor Sporting[9]. Il 6 agosto 2014 è tornato al Cerro[10], squadra in cui aveva militato all'inizio della propria carriera. Nel giugno 2015 ha concluso la propria carriera da calciatore[11].