Cardinals come up short despite Carp and O’Neill’s homers