Debuttò nel2004 nelNewell's Old Boys. Nel torneo seguente riuscì anche a segnare un gol nel classico della città diRosario contro ilCentral, prima di trasferirsi durante ilcalciomercato invernale nelRacing Santander. Nell'ultima stagione ha siglato 10gol di cui 7 surigore, in 30 partite disputate; ha inoltre segnato due penalty nella partita contro ilReal Madrid, contribuendo in modo determinante alla vittoria della sua squadra per 2-1.
Il 19 maggio2008, a meno di ventiquattr'ore dalla fine della stagione, viene acquistato proprio dai madrileni per 10 milioni di euro, ma rimane a Santander un altro anno con la formula del prestito. Dal giugno2009 veste definitivamente la maglia deiBlancos, dove disputa 25 partite siglando 1 rete.
Il 16 luglio2011, ilBenfica annuncia l'acquisto del centraleargentino per 5 milioni di euro[1][2]. Soprattutto durante la stagione2013-2014 Garay si mette in mostra, formando conLuisão la coppia difensiva titolare dei lusitani e conquistando campionato e coppa nazionale, raggiungendo inoltre la finale diEuropa League (poi persa contro ilSiviglia).
Il 25 giugno2014 firma un contratto quinquennale con loZenit San Pietroburgo[3] lasciando ilBenfica dopo tre stagioni per una cifra stimata di 15 milioni di euro di cui la metà va alReal Madrid come da precedenti accordi.[4] La prima presenza la trova il 30 luglio nella gara d'andata degli spareggi diChampions League persa 1-0 sul campo dell'Apoel Limassol. Il 2 agosto trova la prima presenza nella prima giornata dicampionato nella partita vinta 4-0 sul campo dell'Arsenal Tula. Il 6 dicembre segna il suo primo gol con i russi nel 4-0 contro ilKrasnodar. Il 19 febbraio2015 trova la prima presenza con la maglia dei russi inEuropa League nella partita vinta per 1-0 contro gli olandesi delPSV e nell'occasione tocca quota 300 presenze in carriera fra i vari club. Il 17 maggio vince il suo primo trofeo con la maglia delloZenit, aggiudicandosi il campionato russo con due turni d'anticipo in virtù del pareggio per 1-1 sul campo dell'Ufa. Colleziona in tutto 42 presenze e 1 gol.
Inizia la nuova stagione vincendo il secondo trofeo con la squadra russa, ovvero laSupercoppa russa battendo in finale laLokomotiv Mosca ai calci di rigore dopo che i tempi regolamentari e supplementari si erano chiusi sul punteggio di 1-1. Trova il primo gol stagionale il 21 novembre nella partita giocata in casa e vinta 3-0 contro l'Ural e si ripete il 3 dicembre nell'1-1 con l'Ufa. Incampionato la squadra arriva terza, inChampions viene eliminata agli ottavi dalla sua ex squadra, ilBenfica, e vince laCoppa di Russia contro ilCSKA Mosca per 1-4. In questa stagione mette insieme 28 presenze e 2 gol.
Complessivamente con la maglia dello Zenit ha giocato 70 partite e segnato 3 gol in due stagioni.
Il 31 agosto2016 viene ceduto per 25 milioni di euro alValencia con cui firma un contratto quadriennale.[5] Nel settembre successivo fa il suo esordio con la squadra in Liga contro ilReal Betis, nell'occasione realizza il gol del momentaneo 2-2 al minuto 78.Nel febbraio2020 subisce una rottura del legamento crociato sinistro, che gli fa concludere la stagione anzitempo.[6] Nel luglio successivo rimane così svincolato.
Dopo essere stato svincolato per una stagione intera, il 16 luglio 2021 annuncia il proprio ritiro dal calcio giocato a causa di un continuo problema a un fianco che lo tormenta da tre anni.[7][8]
Il 18 maggio2007 è stato convocato per la prima volta dallanazionale argentina. Il debutto ufficiale avviene il 22 agosto2007 nell'amichevole di Oslo contro laNorvegia.
Con laalbiceleste prende parte, senza però mai scendere in campo, allaCopa América 2011.[9] Disputa ilMondiale 2014 tenutosi inBrasile, giocando ogni partita da titolare.