Gregerson fu scelto nel corso del 28º giro del draft 2006 dai St. Louis Cardinals.
Il 23 marzo 2009 i Cardinals scambiarono Gregerson con i San Diego Padres. La squadra concluse così un precedente scambio avvenuto il 4 dicembre 2008, che prevedeva un giocatore da nominare in seguito e Mark Worrell, in cambio di Khalil Greene.[1]
Gregerson debuttò in MLB il 6 aprile 2009 al Petco Park di San Diego, contro i Los Angeles Dodgers. Il 24 settembre colse la sua prima salvezza in una gara contro i Colorado Rockies. Nel 2012 ebbe una striscia di 23 inning senza subire punti tra luglio ed agosto, giocando anche come closer.[2] Il 3 dicembre 2013, Gregerson fu scambiato con gli Oakland Athletics per Seth Smith, giocando in California per una sola stagione.[3]
Il 12 dicembre 2014, Gregerson firmò un contratto triennale del valore di 18,5 milioni di dollari con gli Houston Astros.[4]
Alla fine della sua terza stagione col club, Houston batté i Los Angeles Dodgers nelle World Series 2017 per quattro gare a tre, conquistando il primo titolo in 56 anni di storia, rendendo Gregerson campione per la prima volta in carriera.[5] Divenne free agent il 2 novembre.
Il 13 dicembre 2017, Gregerson firmò un contratto di due anni per 11 milioni di dollari con i St. Louis Cardinals, inclusa un'opzione per la stagione 2020.[6]
Gregerson, venne designato per la riassegnazione il 17 maggio 2019 e svincolato tre giorni dopo, il 20 maggio.