Altuve propels Astros to 5-4 win over Cardinals