Iván Herrera hit a three-run, walk-off home run in the bottom of the 10th inning — one of four homers by St. Louis — as the Cardinals rallied to beat the Pittsburgh Pirates on Tuesday night