The melee came during the Reds' 11-4 loss at Great American Ball Park in Cincinnati. Both teams were chirping back and forth in the top of the ninth before Reds coach Jeff Pickler, stepping in for ejected manager David Bell, visited Garrett on the mound.
Garrett screamed into his glove during the visit and continued to shout words at the Pirates' dugout until deciding to toss his glove and sprint toward the entire Pittsburgh team. He jumped just before reaching the dugout and threw a punch at Pirates pitcher Trevor Williams.
Players from both teams surrounded Williams and Garrett as the brawl continued. Bell ran from the Reds clubhouse and shoved Pirates manager Clint Hurdle. Pirates pitching coach Rick Eckstein ended up on the ground on top of the Reds manager. Reds outfielder Yasiel Puig was also involved in the skirmish and Hurdle was also knocked to the ground.
"I've been swallowed up before, but it's been a long time," Hurdle told reporters. "I've got two fake hips. I don't have a solid foundation. I've been down on the ground before. And I've gotten back up."
Garrett and Puig were ejected from the game, while Bell likely faces a suspension.
Tempers began to rise when Pirates pitcher Keone Kela threw an offering near the head of Reds slugger Derek Dietrich in the seventh inning. Reds star Joey Votto went to the third base line between innings after the Dietrich exchange and shouted toward the Pirates dugout, while pointing at Kela.
"[Kela] threw it up at [Dietrich's] head," Bell told reporters. "It doesn't surprise us. It's kinda been going on all year. I say it doesn't surprise us, but I can't tell you how disappointing it is that it's still going on and nothing has been done about it.
"It's a shame this is allowed and they are able to get away with it. They celebrate it. They support it. They clearly allow it. I don't know if they teach it, but they allow it. It's dangerous. You could go on and on. There are so many things wrong about it."
Bell was ejected the next inning for arguing with home plate umpire Larry Vanover. Reds pitcher Jared Hughes was ejected in the ninth inning for hitting Bucs outfielder Starling Marte.
Garrett replaced Hughes in the top of the ninth frame after the Marte exchange. Garrett forced Josh Bell to ground out before allowing a single to Colin Moran. Jose Osuna then hit a three-run home run off Garrett, before Kevin Newman grounded out.
Then came the melee. Reds bench coach Freddie Benavides, Pirates pitcher Chris Archer, pirates pitcher Kyle Crick and Pirates catcher Francisco Cervelli were also ejected.
The Reds host the Pirates in the third and final game of the series Wednesday at 12:35 p.m. EDT in Cincinnati.