Adam Wainwright searched for the perfect word to describe the slow grounder that changed everything. It only took him a few seconds.

"It was just a debacle," the Cardinals starter decided.

First baseman Allen Craig's throwing error in the seventh inning helped Cincinnati rally for its fourth straight win Friday night, 5-3 over St. Louis before the seventh sellout crowd at Great American Ball Park this season.

The Reds drew 40,217 fans for the opener of a series matching the teams trying to overtake first-place Pittsburgh in the NL Central. Both were on hot stretches coming out of the All-Star break — third-place St. Louis had won four of five, while second-place Cincinnati took three straight in San Diego.

Craig fielded Ryan Hanigan's slow grounder with the bases loaded and threw wildly to first base, allowing two runs to score for a 3-2 lead off Wainwright (7-9). Zack Cozart's sacrifice fly completed a three-run rally that left the Cardinals stunned.

"I made my pitch to Hanigan," Wainwright said. "I didn't make many mistakes tonight, really. I've had some tough losses this year. That's one of those head-scratchers where you just don't know how that happened.

"For whatever reason, things have not gone my way sometimes."

Hanigan's slow grounder to the side of the mound — he couldn't have placed it any better — prevented Wainwright from escaping the threat.

"In general, I thought he did a great job," Cardinals manager Mike Matheny said. "He just couldn't stop the bleeding in the seventh."

Todd Frazier had a solo homer off Wainwright, who allowed only two hits over the first six innings before letting it slip away. Brandon Phillips had three hits and scored twice.

Alfredo Simon (1-1) escaped a bases-loaded threat in the seventh by striking out Matt Holliday. Shane Robinson's pinch-hit single off Sean Marshall cut it to 4-3 in the eighth, but Ryan Ludwick tripled home a run in the bottom of the inning off Fernando Salas.

Aroldis Chapman fanned three in the ninth for his 12th save in 16 chances, repeatedly hitting 101 mph on the radar gun.

The Reds pulled it out with three runs in the seventh after starter Mat Latos had an uncharacteristically quick night. Latos had thrown complete games in two of his last three starts, but managed only five innings and left trailing 2-1, having thrown 97 pitches.

Cincinnati's rally preserved Latos' streak of no losses since April 18. The right-hander is 1-3 in five career starts against St. Louis with a 9.75 ERA.

Frazier's opposite-field homer in the fifth inning made it 66 consecutive games with at least one homer at Great American Ball Park, the longest active streak in the majors. It's the longest such streak overall since a homer was hit in 80 straight games at Coors Field in 2002-03, according to STATS LLC.

"I was just trying to get a spark going — not necessarily hit a home run, but just get on base," Frazier said. "Luckily, I was able to hit it hard enough to get it out. I think it got us going."

Frazier's hand came off the bat as he hit the homer to right field.

"The home run to right is a Great American Ball Park home run," Wainwright said. "You make your pitch down and away, and a guy one-hands it 10 rows out in right field. You can't do anything about that."

Cardinals catcher Yadier Molina returned after missing three games and the All-Star game to return to Puerto Rico, where his wife's grandfather died. Molina, who turned 30 on Friday, started St. Louis' first rally with a two-out double in the second.

Holliday drove in a run in the third by hitting into a fielder's choice. He had a broken-bat single in the ninth off Chapman, extending his hitting streak to a season-best 12 games.

St. Louis expects first baseman Lance Berkman to come off the disabled list before Saturday's game. Berkman has been sidelined since he tore cartilage in his right knee on May 19, requiring surgery. Berkman has 23 homers at Great American Ball Park, the most by any visiting player.

NOTES: The Cardinals are 4-3 against the Reds this season. ... Carlos Beltran of the Cardinals singled in the eighth inning, ending an 0-for-12 skid. .. RHP Kyle Lohse starts on Saturday for the Cardinals. He's allowed only one run in two starts against the Reds this season. RHP Mike Leake goes for Cincinnati. ... Ludwick's triple was his first in two years. He turned 34 on Friday. ... Reds 3B Scott Rolen was out of the starting lineup for the eighth time in the last nine games. He's been bothered by back spasms. He pinch hit in the seventh and stayed in the game.


Follow Joe Kay on Twitter: http://twitter.com/apjoekay