Rookie Aledmys Diaz lined a tying, three-run shot off the foul pole in the fifth inning, one of four homers in a span of nine at-bats against Jeff Samardzija, and the St. Louis Cardinals rallied past the San Francisco Giants 7-4 on Saturday night. Brandon Moss got the long-ball binge started with his 11th leading off the fifth. Stephen Piscotty and Matt Adams hit consecutive homers in a matter of three pitches to open the sixth for a 6-4 cushion.