CINCINNATI -- Homer Bailey didn't feel so good while warming up. When it mattered, he gave the Reds everything they needed in a game they desperately wanted.
Bailey allowed only three hits into the eighth inning and Zack Cozart hit his first major league homer Sunday, leading Cincinnati to a 3-1 victory over the St. Louis Cardinals that left the Reds feeling revived.
The defending NL Central champions haven't won back-to-back games in a month, leaving them stranded in fourth place. By taking two of three from the Cardinals, they got a little momentum and stayed in the pack of four teams atop the division.
"That's the first time we've won a series in a long time," manager Dusty Baker said. "That's huge."
The much-needed win came against Jaime Garcia (9-4), who was 5-0 in his career against them. A disputed call and a pair of wild pitches helped Cincinnati beat the left-hander for the first time.
Cardinals shortstop Ryan Theriot was ejected while arguing a call in the sixth that set up the tying run. Garcia then threw a pair of wild pitches that let Cincinnati pull even.
Ryan Hanigan singled home the tiebreaking run an inning later, and Cozart homered in the eighth.
That was plenty for Bailey (4-4), who gave up three hits, including Lance Berkman's 25th homer, in 7 1/3 innings. Bailey got his first win since May 16, before he went on the disabled list for the second time this season with a shoulder problem.
"I showed up at the ballpark not feeling great, but we won so everything's great," said Bailey, who threw 88 pitches on an 86-degree afternoon. "Warming up before the game, I felt like I had nothing. I was all over the place. I was thinking I might not get past the second inning."
Berkman connected in the second for his 23rd homer at Great American Ball Park, the most by any visiting player. That was all the Cardinals would get.
Francisco Cordero, who blew his last three save chances before the All-Star break, improved to 18 for 23 with a perfect ninth against the heart of the Cardinals' order.
"We're starting the second half, and we're starting the right way, taking two out of three from St. Louis," Cordero said. "Tough times are going to happen sooner or later, but you've got to deal with it and come out of it."
The Reds lead the NL Central rivalry 7-5, with one series left in St. Louis from Sept. 2-4.
Garcia was tough in his first start since getting a four-year, $27 million contract extension. The left-hander allowed only three hits through the first five innings, holding fast to the 1-0 lead. Then, it slipped away.
Cozart singled in the sixth and Joey Votto hit a grounder to second baseman Skip Schumaker. His throw to get the forceout pulled Theriot away from second base, and umpire Mike Muchlinski ruled Cozart safe.
Theriot ran to Muchlinski and pointed in his face while screaming. The umpire quickly ejected Theriot, and first base umpire Chris Guccione stepped between them. Cozart came around to score on a pair of wild pitches by Garcia.
"I know the job they do is very difficult," Theriot said of the umpires. "It was just such a crucial point in the game. I made it a point to keep my foot on the base, and I felt he was out. It's a big call. It's a call that meant a lot at that point. He ended up scoring."
An inning later, Miguel Cairo hit his first triple since 2009 and scored on Hanigan's single up the middle for a 2-1 lead. The Reds finished 1 for 8 with runners in scoring position, but it was just enough. Cozart homered in the eighth off Lance Lynn.
The first two games of the series sold out, but only 24,841 tickets were sold for Sunday. ... St. Louis expects to put INF Nick Punto on the DL for the third time this season with a sore throwing elbow. He pinch hit in the eighth inning and singled. He'll be examined in St. Louis on Monday. ... Cozart has hit safely in his first six games in the majors, the longest such streak by a new Reds player since Adam Dunn hit in his first seven games in 2001.