2012 m. vasaros olimpinėse žaidynėse Greversas laimėjo tris medalius: du auksinius ir vieną sidabrinį. Greversas užsitarnavo pirmąjį medalią, sidabro, plaukdamas su antrą vietą užėmusia JAV komanda 4×100 metrų laisvosios stiliaus štafetės pradinėse varžybose. Finale amerikiečių komanda užėmė antrą vietą po Prancūzijos. Greversas kartu su Jimmy Feigen, Ricky Berens ir Jason Lezak plaukiojo antrą etapą ir užfiksavo laiką 47.59. Po to, kai pirmavo turnyruose (52,92) ir pusfinaluose (52,66)
100 metrų nugaros lenktynėse Greversas laimėjo auksą finalo metu, pasiekęs 52,16 sekundės, gerindamas Aaron Peirsol'o olimpinio rekordo 52,54 sekundės, užregistruoto 2008 m., ir 0,76 sekundės prieš Nick Thoman. Greversui tai buvo pirmasis individualus auksas. Paskutinėje varžybose, 4×100 metrų štafete, Greversas laimėjo auksą su Brendanu Hansenu, Michaelu Phelpsu ir Natanu Adrianu. Greversas užfiksavo 52,58 sekundės laiką, o JAV komanda laimėjo 3:29,35 metu.