Matt Holliday also had a long three-run homer as St. Louis moved into sole possession of first place in the NL Central for the first time since July 29. The Cardinals lead idle Pittsburgh by a half-game and Cincinnati by 3 1/2 games in the top-heavy division.
Zack Cozart had two hits and three RBIs for the Reds, who dropped to 4-9 against St. Louis this season. Jay Bruce hit his 25th homer in the eighth.
Holliday's 18th homer came against Mike Leake and traveled an estimated 443 feet for the longest shot by a St. Louis player at Busch Stadium this season.
The Cardinals went ahead to stay in the seventh. Jon Jay drove in a run with a bases-loaded grounder off Manny Parra (1-3). J.J. Hoover then came in and walked Holliday on a full-count pitch and Craig drove the next pitch over the wall in right for his 13th homer.
The crowd of 35,159 roared as Craig rounded the bases. The big first baseman then came out for a curtain call.
Bruce connected against Seth Maness, but that was it for Cincinnati, which lost for the third time in four games.
Lyons settled down after the rough start and was charged with one earned run in five innings. He struck out seven and walked two.
Leake allowed five runs and seven hits in 6 1-3 innings. The right-hander is 1-1 with an unseemly 5.20 ERA in his last six starts.
NOTES: Joe Kelly (5-3, 3.01 ERA) will face Cincinnati's Mat Latos (13-4, 2.93 ERA) in the second game of the three-game series on Tuesday. Latos is 5-1 with a 1.47 ERA in seven starts since the All-Star break. ... The Cardinals are 24-3-2 in home series against Cincinnati since the start of the 2003 season.
Link to box score: St. Louis 8, Cincinnati 6
Link to game discussion at The Cardinal Nation message board
Craig discusses his big hit.