The 31-year-old right-hander was 0-4 with a 6.75 ERA in five starts last year with the Houston Astros. When he pitched for Houston on July 28, it was his first major league appearance since May 16, 2011, for Arizona.
Galarraga has a 26-34 record with a 4.78 ERA in 91 starts and nine relief appearances over six big league seasons that also included stops in Texas and Detroit.
He lost a perfect game on June 2, 2010, while pitching for Detroit when first base umpire Jim Joyce called Cleveland's Jason Donald safe on what replays showed should have been the final out of the game. Joyce admitted after the game that his call was incorrect.
Cincinnati announced the agreement Saturday.