The victory catapulted the Cardinals a half-game in front of the idle Pirates for the division lead, marking the first time in 29 days that the Cards have sole possession of that top spot. The Reds, now 4-9 against St. Louis, fall to 3 1/2 games back.
"It's huge," Craig said after his three-hit night. "There's a decent amount of games left, but in the grand scheme of things, not really. It's getting to crunch time. Our schedule has been extremely tough, and it doesn't get any easier. We needed to win this game. It's the start of a big series."
A team that has been sapped of power for extended spells this season has seen it return with the hot temperatures. Holliday's three-run blast helped bail out Tyler Lyons, who allowed four runs in a second inning that was compounded by shortstop Daniel Descalso's fielding error.
Then Craig, the Majors' best hitter with runners in scoring position, punctuated that distinction by making his 50th career homer his first grand slam. It capped a five-run seventh against three Reds pitchers.
"This is nice coming back how we did," said David Freese, who opened the seventh with a single. "Late in the year, these types of W's are huge. They all count, but specifically not getting a loss in this situation is big."
The night started with all sorts of trouble for Lyons, who had just been reinserted into the rotation. He worked around a walk to pitch a scoreless first, but Cincinnati jumped on his mistakes -- mostly elevated fastballs -- while batting around in the second.
Descalso flubbed an opportunity to close the inning early with a double play when he let Devin Mesoraco's sharp grounder skip past him into the outfield. Lyons went on to face six more batters in the inning. Two-run triples by Zack Cozart and Todd Frazier put the Reds ahead by four.
"I just didn't make pitches there [in] that second inning," Lyons said. "It's just about keeping the game slow and making pitches there after that point."
As the inning prolonged, reliever Carlos Martinez warmed. Had the inning gotten any more out of control, manager Mike Matheny was poised to make the switch. Martinez continued to throw for the next few innings, too, but he wouldn't be needed until the sixth. Beginning with the final out of the second, Lyons retired 10 in a row.
As he settled, the Cardinals began to peck away.
After the first two batters reached in the third, Holliday greeted Reds starter Mike Leake with a home run that landed an estimated 442 feet away. With it, he became the first Cardinals player since Albert Pujols in 2009 to drive in a run and score one in six straight games.
"He kind of gets knocked around a bit for not getting big RBIs, but that's not the case," Freese said. "This year he has a lot of game-winning RBIs. I know he makes the big bucks, but he comes through in a lot of big ways lately."
The Reds found some breathing room with a run off Martinez in the sixth, but the Cardinals answered in the seventh with their most prolific inning on this homestand.
Freese's leadoff single and a pinch-hit double by Carlos Beltran -- his first hit off the bench this season -- chased Leake from the game and set the Cardinals up to have two chances with the potential tying runs in scoring position.
Matt Carpenter's walk off Manny Parra loaded the bases, and Jon Jay pushed one run home with a grounder to first. J.J. Hoover entered to replace Parra, and Holliday laid off a borderline pitch with the count full to load the bases.
"Great at-bat by Matt," Matheny said. "He's been working it so well, working deep counts, waiting for a mistake and usually being on it. He's seeing the ball pretty good right now, and when he's seeing it well, he's typically staying within himself."
Craig wasted no time, clobbering a first-pitch fastball from Hoover into the right-field seats. The grand slam, which elicited a curtain call from the crowd of 35,159, upped Craig's season RBI total to 95. The only National League hitter with more is Arizona's Paul Goldschmidt.
Craig also improved to 6-for-7 when hitting with the bases loaded and two out this season. He's driven in 15 in those spots. His average with runners in scoring position sits at a Major League-best .452.
"It happens too often to just say it's a fluke," Matheny said. "He's been terrific. I don't know if there's been a better, bigger at-bat all season."
As bloated as the rest of Craig's clutch stats are, the homer was just his 13th this year. It was just his second at home.
"It's nice to know that I can still do it," Craig joked. "It felt good. It came at a good time."
The win put Martinez in line to earn his first big league win. Seth Maness, pitching the eighth for an unavailable Trevor Rosenthal, moved past a leadoff homer from Jay Bruce to retire three straight. Edward Mujica, with the aid of a running catch by Jay, picked up his 35th save with a 1-2-3 ninth.
The win was the Cardinals' 11th in their last 15 games. They have made up 4 1/2 games in the standings during that span.
"I think right now," Matheny said, "our guys are just picturing every game like a postseason game."