The Cardinals made up a three-run deficit with the big inning, won their fourth in a row and closed to within six games of the Reds in the National League Central.
St. Louis sent nine men to the plate in the sixth, with the inning's big blow being Craig's three-run homer off starter Mat Latos (10-4). Molina followed with his solo shot.
Rafael Furcal added an RBI single later in the sixth and Matt Carpenter had a sacrifice fly.
Joe Kelly (4-5) worked three innings of relief to get the victory. Kelly gave up a run on four hits after starter Lance Lynn lasted only two innings, the shortest start of his career.