The Reds had an added home-field advantage with a boisterous sellout crowd of 41,680 on hand for the retirement of Barry Larkin's No. 11.
"You always want to have a good showing on a day like this, especially when there are former Reds here," Reds manager Dusty Baker said.
Leake gave up only two runs and 10 hits over 6 2/3 innings while not walking a batter and striking out three. He also notched two double plays. It didn't feel like the Cardinals had so many hits in the game.
"They only hit a handful of balls hard, as far as in the air," Leake said. "It did shock me when there was that many. When you get ground balls, they're going to find holes."
It was a scoreless game when Leake led off the third inning with his first of two hits, a double down the left-field line. He scored when Brandon Phillips sent an RBI single into center field with two outs. St. Louis notched three hits in the fifth but came away with only Matt Carpenter's sacrifice fly to make it a 1-1 game.
Cincinnati scored three in the sixth against Cardinals starter Jaime Garcia, in his second game back from two months out with a shoulder injury. Phillips led off with a double and scored from third base as Todd Frazier grounded to shortstop and beat out a potential double play for an RBI. Next was Jay Bruce, who drove a 1-1 pitch into the right-field seats for a two-run homer, his team-leading 27th.
"We responded well. It was a good win," said Bruce, who also made a nice diving catch in right field to rob Allen Craig. "You give them extra outs, they're going to hurt you. They play the game the right way."
With two outs in the seventh, Phillips notched his third hit of the day with his 14th homer, a solo shot to right field against Brandon Dickson. And that unleashed a storm of runs as the Reds scored three more times in the inning, with Scott Rolen's two-run single up the middle breaking it open.
Leake gave up his last two singles to start the seventh but got a Shane Robinson double play as a run scored.
"That's sort of how he pitches. He gives up hits, but he finds a way to get out of innings," Cardinals left fielder Matt Holliday said. "He's making pitches, and that's just kind of the way a lot of our games against him are."
It was a nice bounce-back game for Leake, who gave up a season-high seven runs and 10 hits over 4 1/3 innings on Monday in Philadelphia. Overall, he is 6-8 with a 4.51 ERA in 25 starts.
"It's a start that he needed and we needed," Baker said.
St. Louis got no closer as Sean Marshall, Jonathan Broxton and J.J. Hoover closed the door. Hoover struck out the side in the ninth.
"Any win is very important, especially playing against this team," Phillips said. "They never give up. They're a tough team to play. They're right on our butts."
Phillips mentioned the Cardinals' comeback from 10 1/2 games out to take the NL Wild Card last season. St. Louis, of course, carried its momentum to a World Series title.
"Every time you play the Cardinals, you've got to go out there and just know that team is special," Phillips said. "You see the guys, all of them are hitting .300. I don't know who is making the outs on that team. They're a great team. I feel like we're a great team also."
The Reds, at 77-51, are trying to nab their second division title in three seasons. This is a big weekend because after the series wraps up Sunday, the two teams only meet for one more series -- on the final weekend of the regular season at Busch Stadium.
"All we can do is play Reds baseball and get as many wins as possible and to try to beat these guys into the dirt," Phillips said. "I know that's what they're trying to do to us."