Cardinals come back to beat San Diego