Gonzalez went on the 15-day disabled list a day after he felt pain on a swing during batting practice. The Reds called up infielder Danny Richar from Triple-A Louisville to take his place.
Gonzalez signed a three-year, $14 million contract before the 2007 season. He played in only 110 games in his first year with Cincinnati, going on the bereavement list three times to deal with a child's illness. He missed all last season with a compression fracture in his left knee.
Pulled muscles in his left side forced him to miss nine games in May. He was batting .214 with two homers and 20 RBIs when his right elbow locked up during a swing Friday night, prompting him to get scratched from the lineup. Tests found four chips in the elbow that will be removed surgically in the next few days.
Gonzalez is expected to be sidelined for at least three weeks.
"That got me down yesterday when Gonzo said he couldn't play," manager Dusty Baker said.
Baker has been shuffling his infield all season because of injuries and illness.
Third baseman Edwin Encarnacion went on the disabled list in April after chipping a bone in his left wrist on a swing. The Reds switched him to the 60-day DL on Saturday.
"Remember in spring training when I said for us to win this thing we're going to need everybody?" Baker said. "I hoped that didn't have to be right, but it is."
Richar batted .290 with four homers at Louisville, where he was primarily a second baseman.
Maloney went 0-2 in three starts while filling in for injured starter Edinson Volquez. Castillo is beginning his third stint with the Reds, but has hardly played. He has made two appearances as a pinch hitter and one as a pinch runner.