Ivan Herrera delivered a two-run single in the fifth, and Kyle Leahy struck out four over five innings of work as the St. Louis Cardinals held on for a 5-3 win over the Detroit Tigers. Kerry Carpenter blasted a two-run shot in the loss.