SAN DIEGO -- Kevin Kouzmanoff liked Bronson Arroyo's last pitch. He liked plate umpire Ed Rapuano's call even more.
Kouzmanoff, hitting just .137 entering the game, went 3-for-3 and drove in two runs. Mike Cameron also went 3-for-4 and scored two runs for the Padres, who won two of three in the series.
"How 'bout that Kooz? Big game for Kooz. I'm happy for him," Padres manager Bud Black said. "I've seen better swings, better takes. The ball's coming off his bat better. We're seeing it in early work. We're seeing it in BP. And we're seeing it in general."
Kouzmanoff took a high full-count changeup on Arroyo's 129th pitch of the game to force in Khalil Greene with the winning run.
"He froze me," Kouzmanoff said. "It was a good pitch, up around the letters."
Arroyo (2-4) saw the pitch the same way. His dispute was with the call by Rapuano.
"I said, 'You're kidding me? The game is over?"' Arroyo said. "I thought it split the plate. It looked like it was right there."
Peavy allowed nine hits and two runs in seven innings, and has a 1.64 ERA. He struck out five after fanning at least 10 in a franchise-record four straight starts.
Trevor Hoffman (2-2) pitched a scoreless ninth to get the win.
The Reds committed two costly errors that led to two San Diego runs.
Greene and Cameron singled in the ninth to put runners on first and second with no outs. Josh Bard then tapped back to Arroyo, whose throw to third was in the dirt. The error loaded the bases and brought up Kouzmanoff.
Cameron singled and scored on Adam Dunn's error in the seventh to tie it at 2.
Peavy needed 34 pitches to get out of the first inning as the Reds jumped out to a 2-0 lead. Ryan Freel hit a leadoff single and scored on Brandon Phillips' two-out double to center. Phillips, who extended his hitting streak to 19 games, scored on Dunn's single to center.
Kouzmanoff, who was acquired from Cleveland in an offseason deal that sent Josh Barfield to the Indians, hit an RBI single in the second to cut it to 2-1.
Cameron led off the seventh with a base hit. After Bard flied out to center, Kouzmanoff singled to deep left. Dunn misplayed the ball, allowing Cameron to sprint home on the error.
Arroyo allowed three runs, one earned, and 10 hits in his fifth career complete game and first this season. He struck out six and walked two.
"I was fine," Arroyo said. "I felt fresh as a daisy because I threw so many changeups. I was good for plenty more than I threw."
Hoffman's strikeout of Alex Gonzalez in the ninth inning was his 952nd with San Diego, moving him into second on the franchise list. He is one ahead of Eric Show. Andy Benes holds the club record with 1,036 strikeouts. ... Arroyo has allowed three earned runs or fewer in his past eight starts.